2015-02-02 5 views
-4

Рассмотрим следующий пример:Почему, если Action не возвращает значение, требуется ли инструкция return?

public Action MyAction() 
{ 
    //Take some action 
} 

Теперь обратите внимание:

enter image description here

Однако мы также получаем эту компилировать ошибку времени:

enter image description here

Я бы ожидать, лучше компилировать обращения времени из этого, или я что-то упускаю?

+6

MyAction - это метод, возвращающий действие ... –

+0

Вы создаете метод, который требует возврата объекта 'Action'. – grabthefish

+0

Хорошо имеет смысл. –

ответ

2

Само устройство Action может не требовать инструкции return, но метод MyAction делает. Зачем? Потому что она имеет возвращаемое значение:

public Action MyAction() 
{ 
    //Take some action 
} 

Компилятор не заинтересован в углубиться в детали того, что, что возвращаемое значение или, как он будет вести себя после того, как он был возвращен. Он просто устанавливает, что метод non void возвращает экземпляр нужного типа.

+1

Чтобы быть верным, для этого не требуется 'return', для этого требуется, чтобы конец метода был недоступен. Он может «бросить» или даже повесить 'for (;;);'. – PetSerAl

Смежные вопросы