gpt4 book ai didi

c# - 属性中使用的变量是否有任何 C# 命名约定?

转载 作者:IT王子 更新时间:2023-10-29 03:53:26 24 4
gpt4 key购买 nike

比方说,我们有一个变量,我们希望将其命名为 Fubar

假设 Fubar 是一个 String!

这意味着,我们将 Fubar 定义为:

public string Fubar;

现在,假设我们希望 Fubar 有一个 getter 和 setter(或者换句话说,成为一个 C# 属性)!

private string Fubar;
public string Fubar_gs
{
get
{
//Some fancy logic
return Fubar;
}
set
{
//Some more fancy logic
Fubar = value;
}
}

太好了!这一切都很好,除了,如果我想将 PROPERTY 命名为 Fubar,而不是原始变量怎么办?

很明显,我会重命名这两个变量。但问题是,原始变量的最佳名称是什么?

这种情况有命名约定吗?

最佳答案

根据 Microsoft's naming conventions ,正确的方法是:

private string fubar;
public string Fubar { get { return fubar; } set { fubar = value; } }

但是,许多人更喜欢在私有(private)字段前加上下划线作为前缀,以帮助最大限度地减少在他们打算使用属性时误用和使用该字段的可能性,反之亦然。

因此,通常会看到:

private string _fubar;
public string Fubar { get { return _fubar; } set { _fubar = value; } }

您采用的方法最终取决于您。默认情况下,StyleCop 将强制执行前者,而 ReSharper 将强制执行后者。

在 C# 6 中,有用于声明属性默认值或使属性成为只读属性的新语法,减少了对属性的需要,这些属性具有在 get 中没有任何特殊附加逻辑的支持字段> 和 set 方法。你可以简单地写:

public string Fubar { get;放; } = "默认值";

public string Fubar { get; } = "只读值";

关于c# - 属性中使用的变量是否有任何 C# 命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com