<分区>
Possible Duplicate:
What is Difference between Property and Variable in C#
几周前我开始使用 C#,这一直困扰着我。 C# 允许这些所谓的“魔法”getter 和 setter,也称为“语法糖”。所以,我可以这样做:
public int myInt { get;放; }
但是从封装的角度来看,这是毫无意义的。首先,数据成员是public,我可以使用点运算符获取/设置它。但是,如果我这样做:
private int myInt { get;放; }
我根本无法访问它,因为 myInt 由于保护级别而无法访问
。这实际上在做什么?我认为这应该是完成数据封装的一种简单方法,所以我不必这样做:
private int myInt;
public void setMyInt(int i) { myInt = i; }
public int getMyInt() { return myInt; }
但事实并非如此。据我所知,我只是将这些变量公开。我想也许我可以做类似的事情
public int myInt { get; }
因此客户端可以获取
它,但不能设置
它,但是不,仍然允许公共(public)访问。那么给出了什么?
编辑 我不想做任何具体的事情,我只是想了解这实际上是如何工作的。澄清一下:
将变量设为public
并没有完成封装,尤其是当我可以使用点运算符访问它时。为 private
变量编写 getter 和 setter 允许您对变量进行更改,但可以更好地控制实际发生的方式。