logo search
Учебник_ПОА

Проблемы производительности

Давайте рассмотрим ситуацию более детально. При передаче данных методу как параметров типов значений копия каждого параметра создается в стеке. Очевидно, если параметр, о котором идет речь, является крупным типом данных, таким как пользовательская структура с множеством элементов, или метод выполняется много раз, это может негативно сказаться на производительности.

В таких ситуациях рекомендуется передавать ссылку на тип, используя ключевое слово ref. Метод имеет возможность изменить содержимое переменной, что не всегда может быть безопасным. Программист должен находить компромиссное соотношение между безопасностью и производительностью.

int AddTen(int number) // параметр передается по значению

{

return number + 10;

}

void AddTen(ref int number) // параметр передается по ссылке

{

number += 10;

}

Ключевое слово out имеет сходство с ключевым словом ref, но оно указывает компилятору, что метод должен присвоить значение параметру, иначе возникнет ошибка компиляции.

void SetToTen(out int number)

{

// Если такая строка отсутствует, код не будет компилироваться.

number = 10;

}