Когда я вступил в mscolib.dll
сборка, я обнаружил, что Int32 является структурой, но я не знаю, почему мы можем применить оператор «=» к Int32, как это Int32 num=5;
.it не перегружает оператор «=» внутри структуры Int32.Как работает оператор «=» с Int32 в .Net
-2
A
ответ
1
Оператор =
не может быть перегружен. См. Overloadable Operators. Оператор =
всегда присваивает значение с правой стороны переменной с левой стороны.
Для типа значения (struct) это означает, что все значение копируется в переменную.
Для такого типа, как Int32
, в процессоре есть встроенные инструкции, которые могут выполнять это копирование. Для структур, которые настолько велики, что нет инструкции, которая может сразу копировать все значение, будет цикл, который копирует байты в структуре в переменную.
Что делает оператор '+'? –
Извините, я допустил ошибку там. Это должно быть «=». – Hongyaoshun