一個特定的值我有一個許可證class.There是50級布爾性能和一定的時間戳記屬性。如果所有這50個屬性都是錯誤的,我想通知用戶。有沒有什麼辦法來檢查類的屬性在C#
一種方法是用50,如果,如果conditions.other方式是反射這似乎矯枉過正了這件事情。請以其他方式提出建議。我使用的.NET Framework 3.5的
一個特定的值我有一個許可證class.There是50級布爾性能和一定的時間戳記屬性。如果所有這50個屬性都是錯誤的,我想通知用戶。有沒有什麼辦法來檢查類的屬性在C#
一種方法是用50,如果,如果conditions.other方式是反射這似乎矯枉過正了這件事情。請以其他方式提出建議。我使用的.NET Framework 3.5的
你當然可以與反思這樣做...
您可以更改類的strucutre?
在這種情況下,如果布爾值有着某種關聯,你可以使用以下命令:
然後檢查值只使用一個for
或foreach
環。
除此之外,反射是你的朋友。
你應該看看一個Indexed Property。你可以封裝支票存入許可證的只讀屬性:
var values = from prop in typeof(License).GetProperties()
where prop.PropertyType == typeof(bool)
select (bool) prop.GetValue(instance, null);
if (!values.Any(x => x))
{
// Nope, everything's false
}
我不知道你想做的事有關timestamp屬性是什麼:
private List<Boolean> props;
public bool IsExpired
{
get { return !props.Any(p => p); }
}
先生,你會在這種情況下建議(上面提到的方式或加入50 IF) – Rohit 2010-04-12 10:40:47
@喬恩,如果您有許可證列表,你會怎麼更換'用嵌套查詢instance'?這甚至有可能嗎? – 2010-04-12 10:47:18
@Rohit:這當然比50個ifs簡單...但是我不確定我想在這個類型上使用50個屬性。 – 2010-04-12 11:45:50