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

本文关键字:字段 默认值 获取 | 更新日期: 2023-09-27 18:25:39

假设我有我的类,并且我有非静态变量

int x = 5;

在代码运行后,x被更改为其他内容,如何从使用反射开始获得值x

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

简单回答:你不能。

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

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

如果我理解正确,您需要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.

若您想要实现它所需的事务性值的列表,那个么反射并不适用于此。