1
我想了解反射机制。 我想比较一个对象的属性与给定的值。 现在,我希望能够知道(当然在运行时)两个对象是否可比较,而不是执行比较并捕获异常。c#在运行时检查两个对象是否具有可比性
喜欢的东西:
public bool IsComparableWithProperty(string propertyName, object value)
{
return typeof(MyType).GetProperty(propertyName).PropertyType is IComparable<value.GetType()>
}
当然,我知道这是不是有效,仿制药必须在编译时是已知的。 我想知道这种行为是否可以在C#中实现。
感谢
如果我反其道而行,可能会得到不同的结果吗? 这可能是假的吗? (IComparable <>)。MakeGenericType(o1.GetType())。IsAssignableFrom(o2.GetType())== typeof(IComparable <>)。MakeGenericType(o2.GetType())。IsAssignableFrom(o1.GetType() ))' – AFusco
我不确定比较有多大意义..你正在比较'T2 is ICoamparable'to'T1 is IComparable '... –
对于方法中返回true的表达式,属性类型会有ti是实施'IComparable'的东西 –