WinRT中字段的正确命名约定是什么
What is the correct naming convention for fields in WinRT
作为一名.Net开发人员,多年来我一直对WinRT中用于字段的一些命名约定感到有点"困惑"。
在C++中,规则很简单:"do whatever you want!"
在.Net平台AFAIK上的C#中,规则更为人为:
-
对于
protected
字段:camelCase
-
对于
private
字段:C++规则=>"do whatever you want!"
一般来说,我观察到了两种行为:
-
习惯于MFC、Win32、COM的高级开发人员使用
_camelCase
,有时使用m_camelCase
,可能第一个是直接从第二个派生的 -
年轻的开发人员和许多最近的资源(教程、视频、书籍…)与受保护字段的命名规则一致:
camelCase
但对于WinRT
,我在许多资源中观察到了私有字段的新约定:_CamelCase
对我来说,命名约定更具体地针对语言而不是底层平台,因此根据目标平台(.Net或WinRT)以不同的方式编写C#代码似乎有点奇怪。
那么,有没有一些官方或社区的指导方针,或者我应该应用好的旧规则"do whatever you want!"
?
这个问题没有什么意义。WinRT是许多语言使用的api。它的核心是高度基于COM,并且只支持接口。您在编程语言中看到的内容会被语言投影严重过滤。对于托管代码,投影由.NET运行时提供。对于Javascript,该项目由Chakra引擎提供。对于C++,它要么是WRL,要么是C++/CX语言扩展。
语言投影所做的最重要的事情是提供WinRT实际上不支持的功能。像异常、泛型、方法重载和继承一样。因此,编写COM代码从来都不是很流行,这使得它更容易使用。
命名约定是骆驼大小写的,就像winapi一样,去掉了匈牙利语系统。Javascript值得注意的是,语言投影努力用小写的第一个字母重命名标识符。正如该语言的程序员所要求的那样。
但是字段的名称是无关紧要的。接口不支持字段,只支持属性。只有实现接口的实际类才能使用字段。这是一个纯粹的实现细节,就像在COM中一样,从外部永远无法观察到类本身。例如,在.NET中通过要求公共类必须密封来加强。
因此,您只需选择在编写类的语言中常见的任何命名约定。或者,更重要的是,无论你的团队成员同意什么作为团队标准。
- "std::unique_XXX"命名约定背后的基本原理是什么?
- 在命名空间名称之前加上 :: 是什么意思?
- 是什么让一些命名函数/运算符与众不同?
- 命名空间 Win 没有成员"simpleControl"是什么意思
- 使用与号后跟下划线命名的变量是什么意思?
- DLL 的"good"调用约定是什么?
- 合并函数参数的适当命名约定是什么?
- 返回布尔值的函数的命名约定是什么
- 旧样式演员的命名演员是什么:pv =(void*)ps;
- 当我需要添加一个无用的返回语句时,C++约定是什么
- 什么是 RAII 类的常见命名约定
- 二进制运算符的最佳命名空间是什么
- 这个标题的命名约定指的是什么
- 用于"augments std"的代码的命名空间是什么?
- WinRT中字段的正确命名约定是什么
- 导出函数的默认调用约定是什么(VS2008)
- Windows RT在ARM上的本机代码调用约定是什么?
- visual studio中静态成员函数的默认调用约定是什么?
- C++ lambda 函数的默认调用约定是什么?
- 命名约定-在C++标识符中使用下划线的规则是什么