Статический конструктор не может иметь возвращаемый тип, но статический метод должен иметь возвращаемый тип в 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/