Ale*_*der 5 c# private-members
让我们看看这堂课:
public class Cluster
{
private List<Point> points; //private field
public float ComputeDistanceToOtherClusterCLINK(Cluster cluster)
{
var max = 0f;
foreach (var point in cluster.points) // here points field are accessible
{
.......
}
return max;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我可以访问私人领域?
我可以使用此功能还是可能是不好的做法?
如有疑问,请检查语言规范。
\n根据C#语言规范,第3.5.1节:
\n\n\n3.5.1 声明的可访问性
\n成员声明的可访问性可以是以下之一:
\n\n
\n- Public,通过在成员声明中包含 public 修饰符来选择。public的直观含义是\xe2\x80\x9c访问不受限\xe2\x80\x9d。
\n- 受保护,通过在成员声明中包含受保护修饰符来选择。protected 的直观含义是 \xe2\x80\x9c 访问仅限于包含类或从包含类\xe2\x80\x9d 派生的类型。\n-Internal,通过在成员声明中包含内部修饰符来选择。Internal的直观含义是\xe2\x80\x9c访问仅限于本程序\xe2\x80\x9d。
\n- 受保护的内部(意味着受保护或内部),通过在成员声明中同时包含 protected 和内部修饰符来选择。protected internal 的直观含义是 \xe2\x80\x9c 访问仅限于该程序或从包含类 \xe2\x80\x9d 派生的类型。
\n- Private,通过在成员声明中包含 private 修饰符来选择。private的直观含义是\xe2\x80\x9c访问仅限于包含类型\xe2\x80\x9d。
\n
正如您从上一节中看到的,包含类的所有方法(在您的例子中是Cluster
)都可以访问私有字段points
。
...不,这根本不是一个坏习惯:这正是私有领域的目的!
\n 归档时间: |
|
查看次数: |
262 次 |
最近记录: |