C# - 内部成员的命名约定

Posted

技术标签:

【中文标题】C# - 内部成员的命名约定【英文标题】:C# - Naming conventions for internal members 【发布时间】:2013-06-12 21:54:09 【问题描述】:

C# 中internal 成员的命名约定是什么?

例如,WPF 控件的默认访问修饰符是内部的 - 我应该如何命名它们?

【问题讨论】:

【参考方案1】:

所有非公开成员应为lowerCamelCase

【讨论】:

你不是说所有的“私人”吗,@SLaks? 'internal' 不是公共的,也不是私有的,通常使用 PascalCase。 @PauloMorgado:我不这么认为,虽然我不确定。【参考方案2】:

您通常不会命名 WPF 控件。除非您打算在它们上使用诸如 UIA 之类的东西。

话虽如此,看看Official C# Naming Conventions

编辑:即使您计划在您的应用程序上使用 UIA,除非需要,否则您应该避免命名控件。这鼓励了良好的实践(MVVM、UI 和逻辑的分离)并防止懒惰/没有经验的开发人员在实践中求助于类似 winforms 的代码。

UIA 也可能依赖于 AutomationProperties.AutomationId 等属性,因此完全无需为 WPF 控件命名,除非您将它们用作情节提要目标,或者您需要一些 ElementName 绑定。

【讨论】:

什么是 UIA?我在谷歌上搜索过它的意思是 UI 自动化,但我还是第一次听说。 我命名一个 WPF 控件,当我想在运行时以编程方式对其执行某些操作时 - 例如,在发生某些事情时禁用某些控件,或向TextBox 添加文本等。这样做不好是吗? @PeterSivák 是的,这样做很糟糕。如果您需要以编程方式禁用某个控件,那么您可以将它的IsEnabled 属性绑定到 ViewModel 中的某个 bool 属性并对其进行操作。 我已经阅读了您告诉我的General Naming Conventions,但没有提及internal成员:)。顺便问一下,为什么有一个选项来命名 WPF 控件,当它不好的时候? 澄清一下,您可以设置 UI 自动化名称而不设置 WPF 名称。您可以使用AutomationProperties.Name 附加属性设置前者,使用FrameworkElement.Name 依赖属性设置后者。对于某些控件,UIA 名称默认使用 FrameworkElement.Name(如果已指定)。【参考方案3】:

有时非公共成员可以是_lowerCamelCase。

这是一个链接 Naming convention - underscore in C++ and C# variables

【讨论】:

以上是关于C# - 内部成员的命名约定的主要内容,如果未能解决你的问题,请参考以下文章

当顶层命名空间包含基类而内部命名空间包含子类时的 C# 命名空间和类/子类命名约定

C# GUI 命名约定的最佳实践? [关闭]

C# .NET 实例变量命名约定?

私有字段的命名约定

C# 编码约定

C#类命名约定:是基类还是基于类还是抽象类