Ватсон Карли
Шрифт:
В C# следующие типы данных всегда являются типами значений:
□ Все простые предопределенные типы (за исключением
□ Все структуры
□ Все перечисления
Следующие типы данных всегда являются ссылочными типами:
□
□
□ Все классы
Оператор new
Оператор
Можно использовать
Это имеет такой же результат, как:
Отметим, что это то же самое, что и
Последняя инструкция оставит
Методы
Методы в C# определяются таким же образом, как функции в C++, с учетом факта, что методы C# всегда должны быть членами класса, и определение и объявление в C# всегда объединены:
Есть одно ограничение, состоящее в том, что методы-члены не могут объявляться как
Параметры методов
Как и в C++, по умолчанию параметры передаются в методы по значению. Если требуется это изменить, можно использовать ключевое слово
Передача по ссылке означает, что метод может изменять значение параметра. Передача по ссылке также осуществляется, чтобы улучшить производительность при работе с большими структурами, также как и в C++, передача по ссылке означает, что копируется только адрес. Отметим, однако, что, если при передаче по ссылке из соображений производительности вызываемый метод по-прежнему не изменяет значения параметра, то C# не разрешает присоединять модификатор
Параметры типа
Перезагрузка методов
Методы могут быть перезагружены таким же образом, как в C++. Однако C# не допускает в методах параметров по умолчанию. Это можно смоделировать с помощью перезагружаемой версии: