说我有我的班级,我有非静态变量
int x = 5;
代码运行后x
更改为其他内容,如何使用反射启动值x
?
答案 0 :(得分:1)
简短回答:你不能。
如果您实现某种自定义事务系统,那么它是可能的。开箱即用:没有运气。
是的,自定义交易系统可以非常简单:添加您用来记住'的其他字段或属性。初始值。
答案 1 :(得分: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
}
}
答案 2 :(得分:0)
现在,如果你的意思是在类级别设置的默认值,你已经知道它是常量,其他方式是创建一个你需要默认值的类的实例。
ClassName className= new ClassName();
className.MyProp//This will always give default value.
new ClassName().MyProp //would also do.
如果您需要实现它的事务值列表,那么反射就不适合。