读书人

C# private修饰符的有关问题

发布时间: 2013-09-11 16:26:28 作者: rapoo

C# private修饰符的问题,求助
对于private字段和方法,以前总是以为它只能在类的内部方法中被访问,或者类的内部嵌套类可以被访问,今天我发现了一个问题,有点疑惑,以前从没注意,如下面代码

    public class Point
{
private int i;
private int j;
public Point() { }
public Point Add(Point p)
{
Point rtn = new Point();
rtn.i = this.i + p.i;//p.i?i和j不是private么,对象实例怎么可以访问?
rtn.j = this.j + p.j;
p.Print();//直接访问私服方法?
return rtn;
}
public Point(int x, int y)
{
i = x;
j = y;
}
private void Print()
{

}
public override string ToString()
{
return i + "," + j;
}
}
C# private
[解决办法]
private访问修饰符只能在该类内部使用,你所给的例子就是这种情况。如果放到别的函数内,比如main函数下,直接new print对象,是不能调用Print方法的。
[解决办法]
这是在同一个类中当然可以访问了,先了解Private访问权限先


[解决办法]
在自身的类中,相当于友元。C#没有友元这个概念。
[解决办法]
这个不就是从C++开始就有的问题吗,这样调用其实就是类内部访问

读书人网 >C#

热点推荐