WinRT中字段的正确命名约定是什么

What is the correct naming convention for fields in WinRT

本文关键字:命名约定 是什么 字段 WinRT      更新时间:2023-10-16

作为一名.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

对我来说,命名约定更具体地针对语言而不是底层平台,因此根据目标平台(.NetWinRT)以不同的方式编写C#代码似乎有点奇怪。

那么,有没有一些官方或社区的指导方针,或者我应该应用好的旧规则"do whatever you want!"

这个问题没有什么意义。WinRT是许多语言使用的api。它的核心是高度基于COM,并且只支持接口。您在编程语言中看到的内容会被语言投影严重过滤。对于托管代码,投影由.NET运行时提供。对于Javascript,该项目由Chakra引擎提供。对于C++,它要么是WRL,要么是C++/CX语言扩展。

语言投影所做的最重要的事情是提供WinRT实际上不支持的功能。像异常、泛型、方法重载和继承一样。因此,编写COM代码从来都不是很流行,这使得它更容易使用。

命名约定是骆驼大小写的,就像winapi一样,去掉了匈牙利语系统。Javascript值得注意的是,语言投影努力用小写的第一个字母重命名标识符。正如该语言的程序员所要求的那样。

但是字段的名称是无关紧要的。接口不支持字段,只支持属性。只有实现接口的实际类才能使用字段。这是一个纯粹的实现细节,就像在COM中一样,从外部永远无法观察到类本身。例如,在.NET中通过要求公共类必须密封来加强。

因此,您只需选择在编写类的语言中常见的任何命名约定。或者,更重要的是,无论你的团队成员同意什么作为团队标准。