我看过多个教程,这些教程显示了使用包含参数的括号或简单的空的括号创建 C# 方法。我还看到了一个不带括号的 C# 方法。
public int Value {
get{ return _Value; }
set{ _Value = value; }
}
我还没有测试过该代码,但这是否允许?它被认为是不好的形式吗?
我看过多个教程,这些教程显示了使用包含参数的括号或简单的空的括号创建 C# 方法。我还看到了一个不带括号的 C# 方法。
public int Value {
get{ return _Value; }
set{ _Value = value; }
}
我还没有测试过该代码,但这是否允许?它被认为是不好的形式吗?
那是属性而不是方法。如果您创建一个方法,那么它需要 ()。
正如菲利普的回答,您的示例代码实际上是一个属性,
但是您可能遇到了许多人实际上错过的东西,那就是属性是使用一两种方法实现的。它们由编译器为您创建并包含每个 get 和/或 set 块的内容。
所以,一个属性:
public string Name {
get {
return "Fred";
}
}
是一种更好的写作方式:
public string GetName() {
return "Fred";
}
声明或调用方法时必须使用括号。
正如其他人所说,您所展示的是一个属性,该属性在幕后实现为一个或两个方法(“getter”和“setter”各一个)。
但是,您有时会看到没有括号的方法名称 - 这些称为方法组,用于构造委托类型的实例。
例如:
public void Foo(string x)
{
...
}
...
Action<string> action = Foo;
这Action<string>
是一个委托类型,表示具有单个字符串参数和 void 返回类型的调用。此分配创建该委托类型的实例,该实例将在调用该Foo
方法时调用该方法,例如
action("Test");
将Foo
使用“Test”参数调用。
那是一种属性,而不是一种方法。方法需要括号。
糟糕的形式取决于上下文,在决定是否使用属性时需要考虑一些设计注意事项。
MSDN 在这里有一个很好的列表:http: //msdn.microsoft.com/en-us/library/ms229006.aspx