我的代码部分是
public int MyProperty { set { DoTask(); } }
private void DoTask()
{
int MyValue = MyProperty;
}
Get
我没有MyProperty
访问者。
我试图在DoTask()
中获取它的值。
当我在VS2010中构建这个应用程序时,它正在崩溃,给出了构建错误。这不是错误吗?如果我错了或被误解,请纠正我。
此致 Umesh C
答案 0 :(得分:3)
我发现您编写的代码存在问题
public int MyProperty { set { DoTask(value); } }
private void DoTask(int value)
{
int MyValue = value;
}
或
public int MyProperty { set { int MyValue = value; } }
你的代码没有任何意义..
答案 1 :(得分:0)
它清楚它会导致无限循环 我的属性调用dotask和dotask调用myporpety 它崩溃了编译器 Pranay提供的解决方案是个好主意,尝试使用
所以你应该定义属性 将其更改为
private int m_MyProperty;
public int MyProperty { get {return m_MyProperty}set { DoTask(); m_MyProperty=value} }
private void DoTask() { int MyValue = m_MyProperty; }
DoTask始终读取MyProperty的优先值
答案 2 :(得分:0)
代码应该明显不会导致无限循环,因为GetPro for MyProperty不存在(读取:甚至不是私有)。编译器应检测到这一点。
然而,更好的设计是为公共可设置属性提供公共吸气剂。 你的代码将做的是事实上调用一个方法,那你为什么甚至需要这个属性呢?只需将DoTask()方法公开,让客户端直接调用它。 请记住,使用您的代码,您绝对没有机会获得MyProperty的价值,甚至不能从您的班级中获得。