声明保护类会自动保护其成员吗?

时间:2014-01-06 20:50:31

标签: c#

如果我有一个公共类并且无法为其中一个成员提供访问修饰符,那么它将默认为私有。我想知道默认访问修饰符(私有)是否始终是默认值,而不管类包含它的类的可访问性。

例如

public class Galaxy : Universe
{
    //This is private since no modifier was used
    void CreatePlanet()
    {
      //do stuff
    }
}

protected class Universe
{
    //access modifier is omitted (private or protected?)
    int GetGalaxyCountWithinDistance(Galaxy g, int LightYears)
    {
        int answer = some logic;
        return answer;
    }
}

我可以不这样做吗?

{
    Galaxy MilkyWay = new Galaxy();
    int closestGalaxies = MilkyWay.GetGalaxyCountWithinDistance(MilkyWay, 100);
}

或者我是否需要辛苦地声明受保护类的每一个成员都受到保护?

1 个答案:

答案 0 :(得分:7)

简而言之。默认值为private。所以是的,无论类的访问修饰符如何,您都需要明确声明变量是protected