繁体   English   中英

如何在C#中获取类中字段的默认值?

[英]How can I get the default value of a field in a class in C#?

说我有我的班级,我有非静态变量

int x = 5;

在代码运行之后, x被更改为其他内容,如何使用反射启动值x

简短的回答:你做不到。

如果您实现某种自定义事务系统,那么它是可能的。 开箱即用:没有运气。

是的,自定义事务系统可以非常简单:添加另一个用于“记住”初始值的字段或属性。

如果我理解你正确你想要x的初始值。 为此你需要另一个成员或参数来保持x的第一次初始化。 例如在你的班级:

int FirstX = -1;// or any other value you know ain't gonna come
bool firstInitial = true;

public int X
{
   set
   {
      if(firstInitial)
      {
        FirstX = value;
        firstInitial = false;
      }

      x = value
   }
}

现在,如果你的意思是在类级别设置的默认值,你已经知道它是常量的其他方式是创建一个你需要默认值的类的实例。

ClassName className= new ClassName();
className.MyProp//This will always give default value.

new ClassName().MyProp //would also do.

如果您需要实现它的事务值列表,那么反射并不意味着它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM