C#中的Getter和Setter

Rag*_*rok 0 c# getter setter

我只是在玩C#而且我在嘲笑自己哪种方法适合Getter和Setter.我用谷歌找到了这样的东西:

class MyClass
{
    Button btnMyButton;

    // some code...

    public Button getBtnMyButton
    {
        get
        {
            return btnMyButton;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有一种'正确'的方式吗?或者这也没关系:

class MyClass
{
    Button btnMyButton;

    // some code...

    public Button getBtnMyButton()
    {
         return this.btnMyButton;
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么不同?

key*_*rdP 9

正如托马斯所说,那些都是一样的.你可能不知道的点getter,并setter在这种情况下,它的主要语法糖.但是,这也意味着您不必创建显式字段,因为在后台为您创建了一个字段.因此,你可以简单地做

public Button MyButton { get; private set; }
Run Code Online (Sandbox Code Playgroud)

private set;确保只有类可以设置它的值,因此它本质上是只读到外面类.删除private将允许外部类也写入变量.