检查是否为任何属性分配了值

Bor*_*ens 5 .net c# reflection

我有一个类型SearchBag,它包含一堆字符串和可空的整数,用于传递搜索值.我需要一种方法来检查搜索包是否包含任何值.

我目前正在尝试这样做:

    public bool HasValues()
    {
        return GetType().GetProperties().Any(p => p.GetValue(this, null) != null);
    }
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有更好的方法.

SLa*_*aks 4

在不修改SearchBag类型的情况下,没有更好的方法。

编辑:您可以更改类型以在每个属性设置器中设置布尔标志,然后检查该标志而不是使用反射。