2 // System.Net.Mail.MailAddress.cs
5 // Tim Coleman (tim@timcoleman.com)
7 // Copyright (C) Tim Coleman, 2004
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 namespace System.Net.Mail {
36 public class MailAddress
42 //Encoding displayNameEncoding;
48 public MailAddress (string address) : this (address, null)
52 public MailAddress (string address, string displayName) : this (address, displayName, Encoding.Default)
56 public MailAddress (string address, string name, Encoding displayNameEncoding)
58 this.address = address;
59 this.displayName = name;
60 //this.displayNameEncoding = displayNameEncoding;
63 #endregion // Constructors
67 public string Address {
68 get { return address; }
71 public string DisplayName {
72 get { return displayName; }
76 get { return Address.Substring (address.IndexOf ("@") + 1); }
80 get { return Address.Substring (0, address.IndexOf ("@")); }
83 #endregion // Properties
87 public override bool Equals (object obj)
89 return Equals (obj as MailAddress);
92 bool Equals (MailAddress other)
94 return other != null && Address == other.Address;
97 public override int GetHashCode ()
99 return address.GetHashCode ();
102 public override string ToString ()
104 StringBuilder sb = new StringBuilder ();
105 if (DisplayName != null && DisplayName.Length > 0) {
107 sb.Append (DisplayName);
118 return sb.ToString ();
121 #endregion // Methods