【发布时间】:2014-03-14 08:56:27
【问题描述】:
我的讲师指出 vb.net 的变量和对象命名约定已更改。从使用缩短的前缀作为变量名,例如btnFoo 或intFoo(从我记事起就一直如此)到FooButton 或FooInteger 的更冗长、冗长和“CamelCase”后缀版本。
我一直在浏览 .Net 参考页面和论坛,但似乎找不到任何改变惯例的证据。有人知道变化吗?
【问题讨论】:
我的讲师指出 vb.net 的变量和对象命名约定已更改。从使用缩短的前缀作为变量名,例如btnFoo 或intFoo(从我记事起就一直如此)到FooButton 或FooInteger 的更冗长、冗长和“CamelCase”后缀版本。
我一直在浏览 .Net 参考页面和论坛,但似乎找不到任何改变惯例的证据。有人知道变化吗?
【问题讨论】:
早期的 Visual Basic 命名建议基于“System Hungarian”。微软甚至推荐了published a list的前缀,非常了不起的是组件供应商的名称甚至包含在前缀中。与“cbos”一样,Sheridan 发布的自定义 ComboBox 控件,与 Pioneer 发布的“cbop”相对。
System Hungarian 一直颇具争议性,在跟上变化方面有着惨败的悠久历史。 winapi 中的命名约定是good example。显然,包含工具供应商名称的方案没有希望扩展到未来,Visual Basic 推出了一个包含 数百 控制供应商的生态系统。没有希望得到一致使用的约定不是有用的约定。
所以是的,这在 .NET 中完全被删除了。 CamelCase 在框架中数以万计的标识符名称中非常一致地使用,它已经非常有效。规则在naming guidelines 中有很好的说明。
请记住,这只是一个指南,您当然不需要遵循它们。团队内部使用的约定总是胜过软件供应商认为有用的任何东西。这不像他们有一个正确的良好记录:)
【讨论】:
这些都在 Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries 书中,于 2005 年首次出版 - 有 relevant excerpts on MSDN。这些设置将弃用匈牙利表示法,因为在 .Net 框架中,got misused over the years 用于公开名称。
【讨论】: