[英]In C# what does this code with “get” mean?
我是C#的新手。
private string m;
public string M { get { return m; } }
这样的C#中的getter / setter就像Java一样吗?
这部分是一个领域:
private string m;
这部分是一个只读属性,它返回m
字段的值:
public string M { get { return m; } }
您可以将其设为读写属性,如下所示:
public string M {
get { return m; }
set { m = value; }
}
或者你可以在那里有更复杂的逻辑:
public string M {
get {
if (string.IsNullOrEmpty(m))
return "m is null or empty";
return m;
}
}
基本上,字段只擅长保存,而属性更像是方法,可以引入逻辑。
private string m;
首先,使用private修饰符创建一个新的字符串变量。 如果在课堂上这样,那么它在本课程之外是不可见的。
public string M { get { return m; } }
然后,您创建该字符串变量的属性。 此属性是只读的,然后您可以在创建此变量的类之外访问此变量。 您无法使用此类属性为此变量赋值。
这是一个吸气剂。 没有公共可访问的setter,所以必须在类的其他地方设置m。
这是为了在C#中定义Readonly属性,这里只有一个getter
它是m的公共getter,但它可以让你称它为例如变量
string s = M;
这会使s == m
这就是C#中所谓的属性。 它被访问就好像它是一个成员变量,但是调用了get
方法。 属性也可以有一个set
方法,使它们可以修改。
第一行称为字段。 它将创建一个名为m
的私有(即只能在类中访问)成员变量。
第二行称为属性。 此特定属性包装字段m
并且是只读的(即它具有get
但没有set
)。
访问C#中的属性就像它们是字段一样,如下所示:
obj.SomeProp = "Some value";
string val = obj.SomeProp;
但是,与获取和设置字段相比,可以实现更复杂的属性。 财产的主体就像一种方法。 它可以包含非平凡的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.