C# 格式化约定

标签 c# .net naming-conventions

在我读过的一本书中,他们对公共(public)方法和属性使用大写字母。我知道还有一些其他约定,比如您将“_”放在私有(private)变量前面。对我来说,我不喜欢这种方式,更喜欢这种方式,但只是想知道该方法中的内容。

所以

public void MyMethod()
{
}

public string MyProperty {get; set;

}

私有(private)的

private void myMethod()
{
}

但是在方法中呢?

喜欢

public void MyMethod()
{
   string MyVariable = null;
   // or
   string myVairable = null;
}

如果你有一个像这样的全局变量怎么样

public class Test
{
   private string bob;

   public Test()
   {
      bob = null;
   }
}

所以它应该是小写的(因为它是私有(private)的)?另外在旁注中,最好只将其设为属性(property),而不是公共(public)属性(property),而只是将其设为私有(private)。

最佳答案

这是您的代码示例,如果它们遵循官方 Microsoft 代码样式指南(由 StyleCop 和 FxCop 强制执行)

public void MyMethod()
{
}

public string MyProperty { get; set; }

private void MyMethod()
{
}

public void MyMethod()
{
   string myVariable = null;
}

public class Test
{
   private string bob;

   public Test()
   {
      this.bob = null;
   }
}

规范中的一些亮点:所有字段都应该是 private 和小写(除非它们是常量)。所有方法都应大写,无论访问权限如何。如果您想公开一个字段(即使其成为 publicprotected),请使用一个属性(如果它是 protected 或公共(public)的,则应大写)。如果您有属性的自动 getters 和 setters(即只是 get;set;),它们可以在一行上,否则在不同的行上(如果有更多代码)。始终以小写 a-z 而非下划线开头的名称字段。大括号应该换行。始终使用 this. 引用非静态成员(即属性、方法、字段),以将它们与变量区分开来并避免歧义。

有很多列表,但这些是与您的示例最相关的。看code.msdn.microsoft.com/sourceanalysis

您在问题中所说的“全局”实际上是一个“领域”。这些永远不应该公开(正如我上面所说的),因为你公开了你的实现,而实际上你的行为就是你应该在接口(interface)上公开给一个类型的全部。属性允许您指定一个接口(interface),即使它们现在作为自动属性实现,您也可以稍后更改 getter 和 setter 而无需更改接口(interface)。

关于C# 格式化约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511929/

相关文章:

c# - GetSystemTimeZones 缺少 GMT 标准时间

c++ - 如何在c++/cli中正确释放Bitmap的 'external'像素数据

c - 分配/未分配字符串的命名约定

c# - 一次修复所有打开的文件在 VS2017 中显示的所有 'Naming rule violation'

c# - AppHarbor 上的 Selenium InternetExplorerDriver : Cannot start the driver service on localhost

c# - Tweetsharp 授权不呈现 oauth token

c# - 将 Stream 转换为 IEnumerable。如果可能当 "keeping laziness"

c# - C:函数指针与 C# 委托(delegate)相比的不安全示例

c# - 查找小于 2 个整数 a 和 b 的 2 个最大数的算法,它们可以被彼此整除

c# - MVVM 和命名约定