我有一個類:至少一個類別字段不爲空
public class A
{
public string field1 {get;set;}
public string field2 {get;set;}
}
我要檢查是否至少有一個屬性不爲null。
如何做到這一點? 謝謝。
我有一個類:至少一個類別字段不爲空
public class A
{
public string field1 {get;set;}
public string field2 {get;set;}
}
我要檢查是否至少有一個屬性不爲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)
..in其實,對於字符串,它可能是最好的測試是這樣的:
if (string.IsNullOrEmpty(instanceOfA.field1) ||
string.IsNullOrEmpty(instanceOfA.field2))
如果這個類擁有超過幾個屬性,這種方法是一場噩夢 – Alex 2012-08-03 07:10:25
if(obj.field1 != null || obj.field2 != null)
嗯'field1!= field2'! ! – V4Vendetta 2012-08-03 07:04:29
@ V4Vendetta這隻會檢查它們是否不匹配。如果它們不是null,則不會。 – 2012-08-03 07:06:36
@SimonWhitehead當它們具有相同的值或'null'時爲false)不知道確切的場景如何評論:) – V4Vendetta 2012-08-03 07:11:32