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

C# 静态构造函数不能有返回类型,但静态方法在C中必须有返回类型#,c#,oop,static,static-methods,static-constructor,C#,Oop,Static,Static Methods,Static Constructor,这些天我只是在做一些关于OOPS的头脑风暴,突然一个问题出现在我的脑海里。我觉得这很重要,所以我决定向社区提问。问题是: 静态构造函数不能具有返回类型(int、string等),但静态方法必须具有C#中的返回类型 c#编译器如何区分这两种情况以使其通过编译 static Class staticClass { public static staticClass(){} //right public static int staticClass(){} //wrong

这些天我只是在做一些关于OOPS的头脑风暴,突然一个问题出现在我的脑海里。我觉得这很重要,所以我决定向社区提问。问题是:

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

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

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

    public static int staticClass(){} //wrong

    public static int staticMethod(){} //right
}
静态构造函数不能有返回类型(int、string等)

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

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

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

c#编译器如何区分


静态构造函数是构造函数的类型,这意味着在First类对象初始化期间,它不会调用任何返回类型。但静态方法是以类的名称调用的方法。假设您有一个类a,您有一个方法static string display(),然后您可以调用a.display()。因为静态方法对于类的所有对象都是通用的。要了解更多关于构造函数及其类型的信息,请将此URL检查到第二句话,关键是代码块返回的内容有一些语法指示,即使它是一个方法时显式为空。第二个示例被解释为与类同名的方法,这正是因为它定义了一个返回类型(如果它是
void
,则会得到一个类似的错误)。解析器认为第一个示例是一个具有多余可访问性修饰符的静态构造函数,而不是缺少返回类型的成员,具体原因是没有返回类型。是的,我的键入错误public static static class(){}//是错误的,静态构造函数中不能有修饰符
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
}