0

当我尝试使用主体实现 get-set-property 并使用该集合时,它总是以 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; }
    }
}

我做错了什么,还是这是一个 Mono 错误?

4

2 回答 2

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。

于 2012-08-08T16:24:53.767 回答
1

您可以使用自动实现的属性:

public int Bar { get; set; }

或者您可以使用以下字段:

private int _bar;
public int Bar 
{ 
    get { return value; } 
    set { _bar = value; } 
}
于 2015-10-29T10:43:54.743 回答