Привет, это то, что действительно беспокоит меня, и я надеюсь, что у кого-то есть ответ для меня.Я читал о ref
(и out
) и пытаюсь выяснить, не замедляю ли я свой код, используя ref
s.Обычно я заменяю что-то вроде:
int AddToInt(int original, int add){ return original+add; }
на
void AddToInt(ref int original, int add){ original+=add; } // 1st parameter gets the result
, потому что на мой взгляд этот
AddToInt(ref _value, _add);
легче читать и кодировать, чем этот
_value = AddToInt(_value, _add);
Я точно знаю, что я делаю с кодом, используя ref
, в отличие от возврата значения.Тем не менее, производительность - это то, к чему я отношусь серьезно, и, очевидно, разыменование и очистка намного медленнее, когда вы используете ссылки.
Что я хотел бы знать, это почему в каждом сообщении, которое я там читалочень мало мест, где вы обычно проходите ref
(я знаю, что примеры надуманы, но я надеюсь, что вы поняли), когда мне кажется, что пример ref
меньше, чище и точнее.
Я также хотел бы знать, почему ref
действительно медленнее, чем возвращать тип значения - мне показалось бы, если бы я собирался много раз редактировать значение функции перед его возвратом, что этоБыстрее ссылаться на фактическую переменную для ее редактирования, а не на экземпляр этой переменной незадолго до ее очистки из памяти.