2017-02-20 104 views
0

Заявление:ли все методы возвращают что-то

«все методы возвращают что-то».

В учебниках я читал, что «все методы возвращают что-то», и мой учитель подтвердил это.

Метод может возвращать следующие вещи:

  1. утратившими силу
  2. Любой другой объект

Вопросы

Эти вопросы пришли ко мне:

  • «Является недействительным что-то или это просто ключевое слово для компилятора»
  • «Является конструктором метод»?
    • «Если конструктор метод не возвращает что-то.

Это не дублируется в этом post, потому что мой вопрос не конкретно о конструкторе возвращающегося но о вышеуказанном заявлении.

Вопросы тренировки

  • Когда конструктор не является способом, это утверждение было бы истинным.
    • Потому что методы возвращают пустоту или объект.
  • Но когда конструктор is метод возвращает что-то, если это утверждение не было бы ложным.
    • Потому что конструктор - это метод, но ничего не возвращает.
  • Когда void не является чем-то, что возвращается, а просто ключевым словом для компилятора, чтобы теперь он ничего не возвращал, чем это утверждение отверстия было бы ложным.
    • Потому что это будет означать, что методы не могут возвращать ничего, потому что пустота не то,

Есть много вопросов в этом вопросе, но я прошу их в один, так как все они находятся в одной сплоченности к этому утверждению «все методы возвращают что-то». Так верно?

+1

_Hint_: 'MyType instance = new MyType();' –

+0

@TimSchmelter сказал это. – mindOfAi

+2

Предупреждение о спойлере: конструктор возвращает 'void'. 'new' возвращает экземпляр. –

ответ

2

является конструктор метод

Да.

Если конструктор - это метод, он что-то возвращает?

Да, void, в соответствии с IL (чтобы проверить это, сделать небольшой C# приложение, скомпилировать его, и открыть EXE с ildasm):

.method public hidebysig specialname rtspecialname 
     instance void .ctor() cil managed 

Нет согласно спецификация языка C#.

+0

Где упоминается, что конструктор является методом? –

+2

@TimSchmelter '.method' –