[英]get; set; vs get; private set;
I am just wondering, functionally, what is the difference between:我只是想知道,在功能上,两者之间有什么区别:
private int var {get; set;}
and和
public int var {get; private set;}
Also, why does还有,为什么
private int var {get; set;}
return an error?返回错误?
I am new to using getters and setters.我不熟悉使用 getter 和 setter。
The main difference between the two is that两者之间的主要区别在于
private int var {get; set;}
will not allow other classes to access and modify the value of var, while不允许其他类访问和修改var的值,而
public int var {get; private set;}
will only allow other classes to access the value of var, but not modify it.将只允许其他类访问 var 的值,而不能修改它。
The reason why之所以
private int var {get; set;}
returns an error is because you are trying to set the value of var to a private field.返回错误是因为您试图将 var 的值设置为私有字段。 In order to set the value of var, you need to use the public setter.为了设置var的值,你需要使用public setter。
public int var { get; set; }
public int var { get; set; }
is like: public int var { get; set; }
:
public class Var {
private int var;
public int Get() { return var; }
public void Set(int var) { this.var = var; }
}
if you define public int var { get; private set; }
如果你定义public int var { get; private set; }
public int var { get; private set; }
public int var { get; private set; }
, it will be like: ,它会public int var { get; private set; }
:
public class Var {
private int var;
public int Get() { return var; }
private void Set(int var) { this.var = var; }
}
So getter and setter is like call Get()
or Set()
function when you get or set var
:所以 getter 和 setter 就像在获取或设置var
时调用Get()
或Set()
function:
Var v = new Var();
// like v.Set(1);
// if Set() is private, it will returns error.
v.var = 1;
// like Console.log(v.Get());
Console.log(v.var);
It just a analogy, maybe you could see about properties document to know more.这只是一个类比,也许您可以查看有关属性的文档以了解更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.