我使用反射來獲取對象的所有屬性。然後,我需要查看這些屬性的值是否是它們碰巧的任何類型的默認值。以下是我目前的代碼。它抱怨命名空間或類型找不到。這導致我相信它與c#如何隱式類型強制有關。由於我在運行時抓住這個類型,所以不知道如何比較它,或者不太清楚。獲得一個未知類型的默認運行時
我一直希望避免一個開關案例比較類型的名稱,但現在看起來像我唯一的選擇,除非在StackOverflow的輝煌的人可以帶領我在正確的方向。
private bool testPropertyAttribute(PropertyInfo prop)
{
dynamic value = prop.GetValue(DataObject, null);
Type type = prop.PropertyType;
/* Test to see if the value is the defult of its type */
return (value == default(prop.PropertyType)
}
['default'只適用於泛型參數。](http://msdn.microsoft.com/en-us/library/xwth0h0d.aspx)此外,您的代碼缺少右括號和分號。 – 2013-02-11 20:11:02
我假設你期望一個非值類型的默認值爲null? – rene 2013-02-11 20:13:17
除非你沒有其他好的選擇,否則你應該避免使用「動態」。使用'var'或'object'作爲'value'的類型在這裏可以很好地工作。 – Bobson 2013-02-11 20:15:12