Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么冗余可访问性修饰符会出现编译时错误?_C#_Compiler Construction - Fatal编程技术网

C# 为什么冗余可访问性修饰符会出现编译时错误?

C# 为什么冗余可访问性修饰符会出现编译时错误?,c#,compiler-construction,C#,Compiler Construction,编译时错误 集合访问器的可访问性修饰符必须更大 比属性或索引器更严格 在这样的场景中 私有字符串TestString{get;private set;} 为什么这会导致编译错误?我理解更严格的限制。不过,这不应该造成任何真正的问题。这是一个不必要的修改,而不是一个破坏构建的问题。为什么要杀死构建而不是抛出警告 如果有什么问题,最好将错误消息作为找到的冗余代码或类似内容来阅读,因为: 私有字符串TestString{get;private set;} 实际上与: 私有字符串TestString{g

编译时错误

集合访问器的可访问性修饰符必须更大 比属性或索引器更严格

在这样的场景中

私有字符串TestString{get;private set;}


为什么这会导致编译错误?我理解更严格的限制。不过,这不应该造成任何真正的问题。这是一个不必要的修改,而不是一个破坏构建的问题。为什么要杀死构建而不是抛出警告

如果有什么问题,最好将错误消息作为找到的冗余代码或类似内容来阅读,因为:

私有字符串TestString{get;private set;}

实际上与:

私有字符串TestString{get;set;}


但是,由于编译器强制执行该规则,因此获得该规则是有意义的,因为private当然不能比它本身受到更大的限制。

这是令人困惑的。如果它成为一个投票,我赞成这个错误。编译时优化掉的未使用变量不再让人困惑。为什么我们不能做同样的事情?我觉得这与编译时错误的规范不一致,而编译时错误实际上是一个可读性问题。您真正的问题大概是,为什么语言的设计使得只能指定的访问修饰符受到严格的限制?编译器正在遵循规范。请将其保密或绝密。“那就行了。”琼斯凯在评论中回答了我的问题。