在C#中,这个带"get"的代码是什么意思?

Dav*_*gea 3 c# properties

我是C#的新手.

private string m;
public string M { get { return m; } }
Run Code Online (Sandbox Code Playgroud)

这样的C#中的getter/setter就像Java一样吗?

Cod*_*ked 11

这部分是一个领域:

private string m;
Run Code Online (Sandbox Code Playgroud)

此部分是一个只读属性,它返回m字段的值:

public string M { get { return m; } }
Run Code Online (Sandbox Code Playgroud)

您可以将其设为读写属性,如下所示:

public string M {
    get { return m; }
    set { m = value; }
}
Run Code Online (Sandbox Code Playgroud)

或者你可以在那里有更复杂的逻辑:

public string M {
    get {
        if (string.IsNullOrEmpty(m))
            return "m is null or empty";
        return m;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,字段只擅长保存,而属性更像是方法,可以引入逻辑.