As covered well in this question, System.Uri is a good choice to reflect my intention for URIs. But what about for email addresses?
It seems not as clear-cut, because MailAddress has extra information in its DisplayName property that is not a great fit.
You don't have to use the
DisplayNameif you don't want or need to. TheMailAddresstype ensures that an email address is well formed by throwing an exception in it's constructor otherwise. I would argue that it is worth usingMailAddressoverStringfor this reason and also because it communicates intent and adds little overhead.