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

C#如何在其他类访问private私有变量,现有代码访问失败求排查

问题说明

你的代码存在2个核心错误,直接导致编译/运行失败:

  • 违反了private访问修饰符的访问规则
    C#里被private修饰的成员,仅允许在声明该成员的类内部访问,你声明的Abc属性属于AccessModifiers类的私有成员,而你尝试访问它的位置是另一个独立类Program中,哪怕创建了AccessModifiers的实例也没有权限直接访问私有成员,这是C#封装特性的基础限制。
  • 存在语法错误
    代码中Console.WriteLine(acc.Abc)行末尾缺少C#语句要求的结束符;,即便解决了访问权限问题,这段代码也会编译报错。
修复方案

如果需要在Program类中访问Abc属性,按需调整访问修饰符即可,示例修复后的代码如下:

using System;

namespace lab_first
{
    public class AccessModifiers
    {
        // 将private改为public,允许外部类访问
        public int Abc { get; set; }
        private int bcd { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var acc = new AccessModifiers();
            // 补充分号
            Console.WriteLine(acc.Abc);
        }
    }
}

如果不需要完全公开属性,也可以根据实际访问范围需求,替换为internal(同程序集可访问)、protected(仅派生类可访问)等其他访问修饰符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:39:02