簡體   English   中英

有沒有辦法檢查C#中特定值的類的屬性

[英]Is there any way to check for properties of a class for a particular value in c#

我有一個License類,有50個布爾屬性和一些timestamp屬性。 如果這50個屬性全部為false,我想通知用戶。

一種方法是使用if和if條件,另一種方法是反射,對於此問題似乎有些過分了。 請提出其他建議。 我正在使用.Net Framework 3.5

您當然可以通過反射來做到這一點:

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
}

我不確定您要如何處理時間戳屬性...

您可以更改班級的結構嗎?

在這種情況下,如果以某種方式連接了布爾值,則可以使用以下命令:

然后使用forforeach循環檢查值。

除此之外,反思是您的朋友。

您應該查看索引屬性 您可以將支票封裝到License的只讀屬性中:

private List<Boolean> props;

public bool IsExpired
{
    get { return !props.Any(p => p); }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM