public object Clone() { ProfileAttributeBase <T> newProfileAttribute = (ProfileAttributeBase <T>)MemberwiseClone(); newProfileAttribute.Descriptor = Descriptor != null ? (AttributeDescriptor)Descriptor.Clone() : null; newProfileAttribute.Value = Value is ICloneable ? (T)((ICloneable)Value).Clone() : Value; return(newProfileAttribute); }