2013-07-30 67 views

回答

1

简答:你不行。

如果您实现某种自定义事务性系统,则可能会发生这种情况。开箱即用:没有运气。

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

+1

第二个简短答案:为您的课程添加一个新的(只读)属性,使用它而不是文字值,并且您可以在任何需要的地方访问该属性。 – nabuchodonossor

+0

很抱歉将其添加到评论中......它应该是对问题的评论! – nabuchodonossor

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 
    } 
} 
+1

如果认为你的意思是你需要**另一个成员或参数,而不是**不需要**。 – Maarten

+0

@Maarten我是怎么犯这个错误的? –

+0

你告诉我:-) – Maarten

0

现在,如果你的意思是设定在一流水平的默认值,你已经知道,因为它是恒定的其他方式将创建您需要默认值类的一个实例。

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

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

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