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# - 内部成员的命名约定的主要内容,如果未能解决你的问题,请参考以下文章