Статический конструктор не может иметь возвращаемый тип, но статический метод должен иметь возвращаемый тип в C#

В эти дни я просто провожу мозговой штурм по OOPS, и вдруг мне в голову приходит один вопрос. Я считаю это актуальным, поэтому я решил спросить сообщество. Вопрос:

Статический конструктор не может иметь возвращаемый тип (int, string и т. Д.), Но статический метод должен иметь возвращаемый тип в C#.

Как компилятор C# различает обе ситуации, чтобы пройти через компиляцию?

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

    public static int staticClass(){} //wrong

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

2 ответа

Решение

Статический конструктор не может иметь тип возвращаемого значения (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
}

Статический конструктор является типом конструктора, то есть не будет никакой причины возвращаемого типа, которую он вызывает во время инициализации объекта первого класса. Но Статический метод - это метод, который вызывают с именем класса. Предположим, у вас есть класс A, у вас есть метод static string display(), затем вы можете вызвать A.display(). потому что статический метод является общим для всех объектов класса. Чтобы узнать больше о Конструкторе и его проверке типов Этот URL http://dotnetminds.com/constructors-net-using-c-singleton-pattern/

Другие вопросы по тегам