为什么System.Text.Encoding.UTF8
属性的名称全部大写?根据Capitalization Rules for Identifiers和UTF是超过2个字符的缩写这一事实,该属性应该被命名为System.Text.Encoding.Utf8
或者我错了吗?标识符和属性的.NET大写规则System.Text.Encoding.UTF8
回答
这是全部大写,因为它是这样编写的。
.NET 1.0(和Encoding.UTF8
一直回到那里)的设计和实现早于当前形式的框架设计指南,更不用说它们的实施了。因此,您可以在这些指导方针的框架内发现大量违规行为。一个小例子:
System.Security.Cryptography.RNGCryptoServiceProvider
(和很多其他类的System.Security.Cryptography
)System.Text.ASCIIEncoding
System.Runtime.InteropServices.COMException
而系统的搜索可能会出现更多。
这并不像看起来那么愚蠢:人们首先提出准则的原因是因为他们注意到了这种不一致之处,然后坐下来想出一套最能反映当前情况的规则实践。但是,要回过头来改变现有类的大写字母(并打破流程中的现有软件)是不值得的。
对于新类,建议遵循指导原则,即使正确的名称如'Utf8'或'Ascii'在不正确的旁边看起来很奇怪? –
@RadekMicek:“看起来很奇怪”不是你可以正式化的东西,所以是的。在您自己的类中拼写'ASCII'没有任何必要的理由,因为框架中也存在'ASCIIEncoding'类。想象一下,如果有人需要跟踪所有的异常情况会有多么不方便 - 对于任何你想创建的类,你都必须先检查框架!现在,如果你是在现有的'System.Text'命名空间中添加一个新类,那么事情可能会有所不同,那么一致性可能会胜过形式化。但是这是在一个名称空间内。 (我不知道微软的本地政策。) –
- 1. 重写规则与属性URLS
- 2. Java标识符解析规则
- 3. 定义规则标识符ANTLR
- 4. 阿帕奇重写规则:不良标识定界符
- 5. 日本COBOL代码:G文字和标识符的规则?
- 6. 大括号和nginx重写规则
- 7. 重写规则和数字符号“#”
- 8. Objective-C属性规则
- 9. HTML5数据 - *属性规则?
- 10. 的.htaccess和重写规则
- 11. 重写规则连字符
- 12. .NET的大多数灵活性规则引擎
- 13. 授权名称不符合标识符命名规则(DB2 SQL)
- 14. .net和属性属性
- 15. 使用此标识符的函数的javascript作用域规则
- 16. Nginx规则的大小写位置
- 17. 无法识别的属性'fcnMode'。请注意,属性名称区分大小写
- 18. yii中属性的唯一值规则
- 19. DOM中属性+同级的CSS规则
- 20. Nginx的主题标签重写规则
- 21. 重写规则的mod_rewrite规则
- 22. 带重写规则的法语字符
- 23. 标识符的ECMAScript规范2017年
- 24. IIRF重写Condintion和重写规则
- 25. Rails大小写/多化规则
- 26. 的makefile隐性和显性规则
- 27. 重写规则
- 28. 重写规则
- 29. 重写规则
- 30. C#:当属性标识符被称为字符串时访问类属性
我觉得很简单的原因是,不是每个人都知道所有的规则,或者也许是在规则写下来之前作出的决定。 –
可能会为智能感知提供更多卖点!或者更可能是因为这是传统写法是unicode符号的方式:https://en.wikipedia.org/wiki/Unicode – enricoariel