为什么下面的表达式无效? 我知道如何解决错误,但想知道现在允许这种说法背后的基本原理。为什么不能在C#中为自动实现的属性指定不同的访问修饰符
public int Number {public get;protected set; }
我没有用例或应用来阐述为什么这应该被允许。但是,编译器会引发2个错误:
Error 2 The accessibility modifier of the 'LambdaExpressions.Program.Person.Number.get' accessor must be more restrictive than the property or indexer 'LambdaExpressions.Program.Person.Number' LambdaExpressions\LambdaExpressions\Program.cs 66 39 LambdaExpressions
和
Error 1 Cannot specify accessibility modifiers for both accessors of the property or indexer 'LambdaExpressions.Program.Person.Number' LambdaExpressions\LambdaExpressions\Program.cs 66 24 LambdaExpressions
这只是你的语法错误,你确实可以这样做;将你的财产重新定义为'public int Number {get; protected set; }'如果你想'public' get和'protected'设置。 – dash