关于部分类(......由于其保护级别而无法访问)

时间:2015-07-27 08:39:35

标签: c#

我有一个名为Point的部分类,在其中,我想通过创建一个JustTest方法练习(这是没有意义的,因为它只是写出一行),但是我得到了这个错误"` Program.Point.JustTest()'由于其保护等级而无法进入"。

public partial class Point
{
    private int x;
    private int y;

    public Point (int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    partial void JustTest();
}

public partial class Point
{
    partial void JustTest()
    {
        Console.WriteLine("Should I work?");
    }

    public int setX
    {
        set
        {
            x = value;

        }
        get
        {
            return x;
        }
    }

    public int setY
    {
        set
        {
            y = value;

        }
        get
        {
            return y;
        }
    }
}

static void Main()
{
    Point p1 = new Point(20,30);        
    p1.JustTest();
}

4 个答案:

答案 0 :(得分:4)

根据文件:

  

不允许使用访问修饰符。部分方法是隐式私有的。

这证明了您收到的有关无法访问方法的错误。

也许如果你为你想要达到的目标提供了更多的背景以及为什么,可以提供更多的帮助。

partial (Method)

答案 1 :(得分:2)

默认情况下,类的所有成员(方法和字段)都是私有的。所有部分方法必须是私有的。

所以只需将行更改为:

public void JustTest() ...

一切都会好的。

答案 2 :(得分:0)

如果没有声明任何其他成员,则类中的任何成员都是private。因此,编译器错误绝对正确,因为您无法在JustTest - 类中访问该私有方法Program

JustTest公开,并省略partial - 定义,因为任何partial成员都是隐含的private

答案 3 :(得分:0)

部分方法是“隐式私有,因此它们不能是虚拟的。”也不能在同一个类和模块之外访问。如果您希望在外部访问它,则必须声明将访问部分方法的公共方法。见解释here