静态构造函数不能有返回类型,但静态方法必须在C#中有返回类型

时间:2013-07-11 19:08:49

标签: c# oop static static-methods static-constructor

这些天我只是在OOPS上做了一些头脑风暴,突然出现了一个问题。我发现它很相关,所以我决定问社区。问题是:

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

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

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

    public static int staticClass(){} //wrong

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

2 个答案:

答案 0 :(得分:3)

  

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

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

  

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

错误。静态方法很可能是一种无效方法。

  

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
}

答案 1 :(得分:0)

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