Well, this is less complicated if you use an array of parameters:
var parts = emailAddress.Split('@');
Or (to avoid creating a new array every time), you can reuse an existing array:
private static readonly char[] EmailSplitter = new char[] {'@'}; ... var parts = emailAddress.Split(EmailSplitter);
Also, I donโt see it being particularly awkward, although if thatโs all that the EmailAddress class does, I would do it in the constructor (or static method) and make the object immutable.
You might want to use "localpart" instead of "alias" - this will support RFC-822.
source share