I think this works, not 100% sure.
public string Address
{
get
{
if (_user != null && _host != null)
return _user + "@" + _host;
else
return _address;
}
set
{
_address = value;
if (IsValidEmail(_address))
{
int atIndex = _address.IndexOf('@');
_user = _address.ToString().Substring(0,atIndex);
_host = _address.ToString().Substring(atIndex, _address.Length - atIndex);
}
else
_user = _host = null;
}
}