2

这些天我只是在 OOPS 上进行一些头脑风暴,突然想到一个问题。我觉得它很相关,所以我决定问社区。问题是:

静态构造函数不能有返回类型(int、string 等),但静态方法在 C# 中必须有返回类型。

c# 编译器如何区分这两种情况以使其通过编译?

static Class staticClass
{
    public static staticClass(){} //right

    public static int staticClass(){} //wrong

    public static int staticMethod(){} //right
}
4

2 回答 2

3

静态构造函数不能有返回类型(int、string 等)

正确的。但是(静态)构造函数不需要返回任何东西。

但是静态方法在 C# 中必须具有返回类型。

错误的。静态方法很可能是 void 方法。

c#编译器如何区分...

static class StaticClass
{
  public static StaticClass(){} //right  : Wrong. 'public' is not allowed.

  public static int StaticClass(){} //wrong : Indeed wrong. Member cannot have same name as class

  public static int StaticMethod(){} //right
}
于 2013-07-11T19:19:11.533 回答
0

静态构造函数是构造函数的类型,意味着在第一个类对象初始化期间它不会调用任何返回类型原因。但是静态方法是使用类名调用的方法。假设你有一个类 A,你有一个静态字符串 display() 方法,那么你可以调用 A.display()。因为静态方法对类的所有对象都是通用的。要了解更多关于 Constructor 和他的类型检查这个 URL constructors-net-using-csharp-singleton-pattern/

于 2016-09-11T14:53:26.227 回答