public override bool Equals(object obj)
{
if (obj == null) return false;
var objMe = obj as DynamicEnum;
if (objMe != null)
{
if (objMe._descriptor != _descriptor) return false;
return objMe._value == _value;
}
if (!obj.GetType().IsEnum) return false;
var myDescriptor = (EnumTypeDescriptor)_descriptor;
var otherDescriptor = myDescriptor._typeSerializers.DescriptorOf(obj.GetType());
if (!myDescriptor.Equals(otherDescriptor)) return false;
if (myDescriptor._signed)
{
return _value == (ulong)Convert.ToInt64(obj, CultureInfo.InvariantCulture);
}
return _value == Convert.ToUInt64(obj, CultureInfo.InvariantCulture);
}