如何按值比较System.Object类型的两个值?
如何按值比较System.Object类型的两个值 如何执行以下操作:如何按值比较System.Object类型的两个值?,object,c#-2.0,compare,Object,C# 2.0,Compare,如何按值比较System.Object类型的两个值 如何执行以下操作: void Validate(Type t, Object obj)//t is always a Basic type like System.Int32, System.DateTime, System.String, etc. { Object value = Convert.ChangeType(obj, t); Object minValue = Convert.ChangeType(this.Min
void Validate(Type t, Object obj)//t is always a Basic type like System.Int32, System.DateTime, System.String, etc.
{
Object value = Convert.ChangeType(obj, t);
Object minValue = Convert.ChangeType(this.MinValue.Value, t);
Object maxValue = Convert.ChangeType(this.MaxValue.Value, t);
if (!(minValue >= value && value >= maxValue))
{
throw new Exception(".....err...message.....");
}
}
System.Object
没有可比较的属性值。当然,如果您可以检查每个对象所具有的函数返回的值。基本值类型,如Int32
实现:
IComparable value=(IComparable)Convert.ChangeType(obj,t);
I可比较的最小值=。。。
IComparable maxValue=。。。
如果(minValue.CompareTo(值)>0 | | maxValue.CompareTo(值)<0)
扔。。。
您可以使用这样一个事实,即您列出的所有类型都实现了接口。而不是对象/var使用动态
dynamic minValue = Convert.ChangeType(this.MinValue.Value, t);
dynamic maxValue = Convert.ChangeType(this.MaxValue.Value, t);
dynamic minValue = Convert.ChangeType(this.MinValue.Value, t);
dynamic maxValue = Convert.ChangeType(this.MaxValue.Value, t);