2010-04-12 138 views
2

一個特定的值我有一個許可證class.There是50級布爾性能和一定的時間戳記屬性。如果所有這50個屬性都是錯誤的,我想通知用戶。有沒有什麼辦法來檢查類的屬性在C#

一種方法是用50,如果,如果conditions.other方式是反射這似乎矯枉過正了這件事情。請以其他方式提出建議。我使用的.NET Framework 3.5的

回答

3

你當然可以與反思這樣做...

+0

先生,你會在這種情況下建議(上面提到的方式或加入50 IF) – Rohit 2010-04-12 10:40:47

+0

@喬恩,如果您有許可證列表,你會怎麼更換'用嵌套查詢instance'?這甚至有可能嗎? – 2010-04-12 10:47:18

+0

@Rohit:這當然比50個ifs簡單...但是我不確定我想在這個類型上使用50個屬性。 – 2010-04-12 11:45:50

1

您可以更改類的strucutre?

在這種情況下,如果布爾值有着某種關聯,你可以使用以下命令:

然後檢查值只使用一個forforeach環。

除此之外,反射是你的朋友。

0

你應該看看一個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); } 
} 
相關問題