我想使用C#创建一个与其类同名的函数。
示例代码段:
public class MyCustomer
{
public MyCustomer()
{
}
public void MyCustomer()
{
}
}
如果我尝试编译它,Visual studio会抛出错误。
答案 0 :(得分:5)
您无法创建与类名同名的函数。与类名同名的函数保留给构造函数。
答案 1 :(得分:2)
您不能拥有与类名相同的方法名void MyCustomer()
- 它是为构造函数public MyCustomer()
保留的
答案 2 :(得分:2)
重命名该功能。严重的是,函数名称应该表明该方法的效果。
因此将其更改为ShowCustomerDetails或CreateMyCustomer或...
答案 3 :(得分:2)
正如其他人所说,你不能这样做。仅为了清楚起见,语言规范参考(使用C#4规范)是第10.3节(强调我的):
实例构造函数,析构函数和静态构造函数必须与紧邻的类具有相同的名称。 所有其他成员的名称必须与紧邻的类名称不同。
所以你可以使用与封闭类同名的方法创建一个嵌套类:
public class MyCustomer
{
public class Nested
{
public void MyCustomer() {}
}
}
...但我强烈建议您不要这样做。
你能否首先告诉我们为什么你想要这样做?
答案 4 :(得分:1)
您的函数名称不能与类名相同。这是为构造函数
保留的答案 5 :(得分:1)
与类名同名的函数称为构造函数。它在创建对象时执行。您可以拥有多个构造函数(构造函数重载),但在这种情况下,您将拥有具有不同参数集的构造函数。例如:
public MyCustomer()
{}
public MyCustomer(int x)
{
// use the x variable.
}
另一个重点是构造函数没有返回类型。
答案 6 :(得分:1)
简单地说你不能创造它,你想要什么。我想你需要阅读有关构造函数的内容。 类名仅被视为该类的保留关键字,并且仅允许用户使用构造函数名称。框架不允许您将其与void /任何返回类型一起用于方法名称。