You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#私有成员跨实例访问无报错?访问修饰符作用范围疑问

C#私有成员跨实例访问的规则说明

你对私有访问修饰符的作用范围理解确实有误。在C#里,私有成员的访问权限是类级别的,不是实例级别的——简单说就是:同一个类的任意实例,都能访问该类的私有成员,不管是不是当前方法所属的实例。

回到你的代码:

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

IsSpaceAvailable方法属于Lane类,所以它可以直接访问任何Lane实例的私有字段_filledSpots,这完全符合C#的访问规则,因此VS Code不会报错。

这种设计是有实际意义的:比如在实现类的相等比较方法(如Equals)时,需要访问另一个同类型实例的私有成员来完成逻辑判断,类级别的私有访问权限能让这类内部逻辑更完整,同时又保证私有成员不会被其他外部类访问。

内容的提问来源于stack exchange,提问作者Saba Soft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:22:03