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

.NET代码中Class1.P1属性CS0122访问级别错误修复咨询

修复CS0122: 'Class1.P1' is inaccessible due to its protection level错误

错误原因很明确:你在Class1中定义的P1属性使用了private访问修饰符,这个修饰符会限制属性只能在Class1自身内部被访问,外部的Program.Main方法没有权限访问它,因此触发了CS0122错误。

最简单直接的修复方式是把P1属性的访问修饰符改成public,这样类外部就能正常读写该属性了。修改后的Class1代码如下:

public class Class1
{
    private int p1;    // 私有字段,用于存储属性值
    public int P1     // 将访问级别修改为public
    {
        get { return p1; }
        set
        {
            if (value < 100)
                p1 = value;
            else
                Console.WriteLine("invalid p1");
        }
    }
}

如果有特殊需求(比如只允许外部读取属性值,不允许外部直接修改),可以单独把set访问器设置为private,示例代码如下:

public int P1
{
    get { return p1; }
    private set  // 仅允许Class1内部修改属性值
    {
        if (value < 100)
            p1 = value;
        else
            Console.WriteLine("invalid p1");
    }
}

这种情况下,外部代码只能读取P1的值,赋值操作只能在Class1内部的方法中完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:56:07