私はクラスを持っています:
public class A
{
public string field1 {get;set;}
public string field2 {get;set;}
}
少なくとも 1 つのプロパティが null でないかどうかを確認したい。
これを行う方法?ありがとう。
私はクラスを持っています:
public class A
{
public string field1 {get;set;}
public string field2 {get;set;}
}
少なくとも 1 つのプロパティが null でないかどうかを確認したい。
これを行う方法?ありがとう。
リフレクションは次のことに役立ちます。
A myInstance = new A();
Type myType = myInstance.GetType();
if (myType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Static | BindingFlags.Instance)
.Any(property => propoerty.CanRead && property.GetValue(myInstance, null) != null))
{ /* something is not null in myInstance */}
クラスにいくつのプロパティがあるかは問題ではありません。
注: コメントが指摘したように、これは非パブリックをチェックせず、設定のみのプロパティはそれを爆破します。コードが微調整されています。
1行にすることができます..次のように:
if (instanceOfA.field1 != null || instanceOfA.field2 != null)
..実際、文字列の場合、次のようにテストするのが最善かもしれません:
if (string.IsNullOrEmpty(instanceOfA.field1) ||
string.IsNullOrEmpty(instanceOfA.field2))
if(obj.field1 != null || obj.field2 != null)