namespace System.ComponentModel { [AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Event)] public class DisplayNameAttribute : Attribute { public static readonly DisplayNameAttribute Default = new DisplayNameAttribute (); private string attributeDisplayName; public DisplayNameAttribute () { this.attributeDisplayName = String.Empty; } public DisplayNameAttribute (string displayName) { this.attributeDisplayName = displayName != null ? displayName : String.Empty; } public override bool IsDefaultAttribute () { return attributeDisplayName.Length == 0; } public override int GetHashCode () { return attributeDisplayName.GetHashCode (); } public override bool Equals (object obj) { if (obj == this) return true; DisplayNameAttribute dna = obj as DisplayNameAttribute; if (dna == null) return false; return dna.DisplayName == attributeDisplayName; } public virtual string DisplayName { get { return attributeDisplayName; } } protected string DisplayNameValue { get { return attributeDisplayName; } set { attributeDisplayName = value != null ? value : String.Empty; } } } }