视觉工作室2010在构建发生时崩溃

时间:2011-05-31 05:24:17

标签: c# visual-studio-2010 build crash

我的代码部分是

public int MyProperty { set { DoTask(); } }

private void DoTask()
{
    int MyValue = MyProperty;
}

Get我没有MyProperty访问者。 我试图在DoTask()中获取它的值。 当我在VS2010中构建这个应用程序时,它正在崩溃,给出了构建错误。这不是错误吗?如果我错了或被误解,请纠正我。

此致 Umesh C

3 个答案:

答案 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的价值,甚至不能从您的班级中获得。