Например, в C #, если мы напишем следующий код:
int foo = 1;
мы объявляем и создаем экземпляр объекта, верно?
Нет;вы объявляете либо локальный тип значения в стеке, либо поле экземпляра типа значения.Ноль объектов были вовлечены.int
не является типом объекта, а Int32
и int
являются точно такими же в .NET.
(На самом деле, есть сценарий, в котором foo
может в конечном итоге вызвать дополнительный объект - связанный с тем, как обрабатываются локальные объекты в некоторых методах; aysnc
, блоки итераторов, лямбда-выражения и т.каждый раз примитивный тип данных, такой как int, используется в C #.
Это именно то, что делает C # и всегда делал.Больше: в отличие от Java, это работает и с дженериками.