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'的東西 –