在我读过的一本书中,他们对公共(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
和小写(除非它们是常量)。所有方法都应大写,无论访问权限如何。如果您想公开一个字段(即使其成为 public
或 protected
),请使用一个属性(如果它是 protected 或公共(public)的,则应大写)。如果您有属性的自动 get
ters 和 set
ters(即只是 get;
和 set;
),它们可以在一行上,否则在不同的行上(如果有更多代码)。始终以小写 a-z 而非下划线开头的名称字段。大括号应该换行。始终使用 this.
引用非静态成员(即属性、方法、字段),以将它们与变量区分开来并避免歧义。
有很多列表,但这些是与您的示例最相关的。看code.msdn.microsoft.com/sourceanalysis
您在问题中所说的“全局”实际上是一个“领域”。这些永远不应该公开(正如我上面所说的),因为你公开了你的实现,而实际上你的行为就是你应该在接口(interface)上公开给一个类型的全部。属性允许您指定一个接口(interface),即使它们现在作为自动属性实现,您也可以稍后更改 get
ter 和 set
ter 而无需更改接口(interface)。
关于C# 格式化约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511929/