3

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

int x = 5;

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

4

3 回答 3

1

简短的回答:你不能。

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

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

于 2013-07-30T10:34:46.377 回答
0

如果我理解正确,你想要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
   }
}
于 2013-07-30T10:35:33.930 回答
0

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

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

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

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

于 2013-07-30T10:38:56.713 回答