至少有一个类字段不为空

lov*_*iji 1 c#

我上课了:

public class A
{
   public string field1 {get;set;}
   public string field2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我想检查至少有一个属性是否为空.

这该怎么做?谢谢.

Ale*_*lex 9

反思可以帮助你:

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)

无论你的班级有多少属性.

注意:正如评论所指出的,这不会检查非公共和仅设置属性会炸毁它.代码已被调整.

  • 为什么浪费时间编写不可重用的代码?这可以在方法中拍打并用于*任何*.其他现实案例:如果添加/删除属性该怎么办?这种方法可以让你不在乎那里有什么. (2认同)