当我尝试使用body实现get-set-property并使用该set时,它总是以SIGSEGV退出 - 一个分段错误。我在Mac OS X Mountain Lion(10.8)下运行Mono 2.10.9 + MonoDevelop 3.0.3.5。以下是我可以使用的最小代码量:
public class MainClass {
public static int Main(string[] args) {
Foo foo = new Foo();
foo.Bar = 42; // Never makes it past this line
return 0;
}
}
public class Foo {
public int Bar {
get { return Bar; }
set { Bar = value; }
}
}
我做错了什么,或者这是一个单声道的错误?
答案 0 :(得分:3)
尝试将代码更改为:
public class Foo {
public int Bar { get; set; }
}
或者这个:
public class Foo {
private int _bar;
public int Bar {
get { return _bar; }
set { _bar = value; }
}
}
您没有支持商店。您需要添加一个,或使用自动属性。编写代码的方式是在访问这些属性时递归调用get / set。
答案 1 :(得分:1)
您可以使用自动实现的属性:
public int Bar { get; set; }
或者您可以使用字段:
private int _bar;
public int Bar
{
get { return value; }
set { _bar = value; }
}