Подтвердить что ты не робот

Почему Void является структурой?

Я понял, что в Microsoft.NET Framework тип возвращаемого типа void является структурой. Почему?

...
public void TestMethod()
{

}
...
4b9b3361

Ответ 1

В структуре используется тип значения, называемый System.Void, чтобы представить ключевое слово void для возвращаемого типа для использования с отражением. Хотя void означает отсутствие возвращаемого значения, он по-прежнему технически является типом, и для того, чтобы он был выражен как таковой в коде, он должен быть либо структурой (тип значения), либо классом (ссылочным типом).

См. MethodInfo.ReturnType для примера.

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