.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
相关产品推荐
相关产品推荐

