C# 访问修饰符范围

问题描述 投票:0回答:1

我有以下代码块,其中有 Class Lane 的多个实例。我想比较 2 个对象并检查是否有空间。

public class Lane
{
        private int _filledSpots = 0;
        public bool IsSpaceAvailable(Lane fromLane)
        {
            return fromLane._filledSpots == 4;
        }
}

现在来说说这个问题。我的理解是,在以下方法中,我无法访问 fromLane 的 _filledSpots 属性。但 VS Code 没有给出任何错误。这怎么可能?或者我对访问范围的理解有误。

c# unity-game-engine unityscript
1个回答
0
投票

访问该字段的代码位于类内部,因此它能够访问私有成员。 “私有”具体意味着只能在同一类内部访问。您可能会感到困惑,因为它是另一个实例的私有成员,但这无关紧要。这是同一个班级,因此所有成员都可以访问。

为了使复制构造函数普遍有效,需要能够访问同一类的其他实例的私有成员。否则,任何具有私有字段的类型都不能有复制构造函数,因为您无法获取该值以在新实例中设置它。

© www.soinside.com 2019 - 2024. All rights reserved.