比方说,我们有一个变量,我们想要命名 Fubar
让我们说这Fubar
是一个String
!
这意味着,我们将Fubar定义为:
public string Fubar;
Run Code Online (Sandbox Code Playgroud)
现在,假设我们想要Fubar
一个getter和setter(换句话说,成为一个C#属性)!
private string Fubar;
public string Fubar_gs
{
get
{
//Some fancy logic
return Fubar;
}
set
{
//Some more fancy logic
Fubar = value;
}
}
Run Code Online (Sandbox Code Playgroud)
好极了!这一切都很好,花花公子,除了我想要将PROPERTY命名为Fubar,而不是原始变量怎么办?
很明显,我只想重命名这两个变量.但问题是,原始变量的最佳名称是什么?
这种情况是否有命名惯例?
Dan*_*ann 128
根据Microsoft的命名约定,正确的方法是:
private string fubar;
public string Fubar { get { return fubar; } set { fubar = value; } }
Run Code Online (Sandbox Code Playgroud)
然而,许多人更喜欢在私有字段前加上下划线,以帮助最小化错误大写的可能性,并在他们打算使用该属性时使用该字段,反之亦然.
因此,常见的是:
private string _fubar;
public string Fubar { get { return _fubar; } set { _fubar = value; } }
Run Code Online (Sandbox Code Playgroud)
你采取的方法最终取决于你.StyleCop默认强制执行前者,而ReSharper将强制执行后者.
在C#6中,有一种新的语法,用于声明属性的默认值或创建只读属性,减少对具有支持字段的属性的需求,这些支持字段在get
和set
方法中没有任何特殊的附加逻辑.你可以简单地写:
public string Fubar { get; set; } = "Default Value";
要么
public string Fubar { get; } = "Read-only Value";
使用下划线为private添加前缀 _Fubar
如果您将私有变量命名为小写,则可以右键单击它们并让VS为您生成getter/setter代码;
重构 - > Enacpsulate Field ...
它将使用Caps命名该属性.
如果getter/setter中没有逻辑,请使用auto-property:
public string Fubar {get; set;}
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/bb384054.aspx
嗯,框架设计指南文档指出了以下内容:
\n\n\n\n\n字段名称 字段命名准则适用于静态公共字段和\n 受保护字段。准则不涵盖内部和私有字段,并且成员设计准则不允许公共或受保护的实例字段。
\n\n\xe2\x9c\x93 请在字段名称中使用 PascalCasing。
\n\n\xe2\x9c\x93 请使用名词、名词短语或形容词来命名字段。
\n\nX 不要对字段名称使用前缀。
\n\n例如,不要使用“g_”或“s_”来指示静态字段。
\n
所以,对于私人领域,没有官方推荐。但是,如果您对某个属性使用 VS 2017 快速操作“转换为完整属性”,则会发生这种情况:
\n\n\n\n因此,似乎可以安全地假设用下划线作为私有字段前缀在某种程度上是标准的。
\n 归档时间: |
|
查看次数: |
42802 次 |
最近记录: |