我上课了:
public class A
{
public string field1 {get;set;}
public string field2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我想检查至少有一个属性是否为空.
这该怎么做?谢谢.
反思可以帮助你:
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 */}
Run Code Online (Sandbox Code Playgroud)
无论你的班级有多少属性.
注意:正如评论所指出的,这不会检查非公共和仅设置属性会炸毁它.代码已被调整.