Видя, как новые экземпляры типов значений создаются каждый раз, когда они передаются в качестве аргументов, я начал думать о сценариях, в которых использование ключевых слов ref
или out
может показать значительную производительность. улучшение.
Через некоторое время меня осенило, что, хотя я вижу недостаток использования типов значений, я не знаю никаких преимуществ.
Итак, мой вопрос довольно прост - какова цель наличия типов значений? что мы получаем, копируя структуру, а не просто создавая на нее новую ссылку?
Мне кажется, что было бы намного проще иметь только ссылочные типы, как в Java.
Изменить: Чтобы прояснить это, я не имею в виду типы значений меньше 8 байтов (максимальный размер ссылки), а скорее типы значений размером 8 байтов и более.
Например, структура Rectangle
, содержащая четыре значения int
.