Как тип System.Void указывает тип возвращаемого значения для метода, который не возвращает значение? - PullRequest
5 голосов
/ 07 августа 2009

Это методы фактического типа без возврата возвращаемого значения?

Если да, то где проводится различие, что «ничего» не возвращается?

Ответы [ 3 ]

8 голосов
/ 07 августа 2009

Я не уверен, что именно вы ищете. Существует System.Void и ключевое слово «void».

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

5 голосов
/ 07 августа 2009

Метод ничего не возвращает; в стеке нет возвращаемого значения (в отличие от нулевого значения, всех нулей, ссылки на System.Void и т. д.)

Тип System.Void является просто заполнителем для API отражений, поэтому у отражения есть удобный способ сообщить вам, что метод не возвращает значение.

4 голосов
/ 07 августа 2009

Этот тип значения фактически используется для отражения. Предположим, вы хотите запросить тип возвращаемого значения метода. Какую ценность вы бы вернули? Вот для чего System.Void.

Но в документации уже сказано:

Структура Void используется в пространстве имен System.Reflection, но редко используется в типичном приложении. Структура Void не имеет членов, отличных от тех, которые все типы наследуют от класса Object.

...