Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Перегрузка операторов тесно связана с перегрузкой методов. Для перегрузки операторов используется ключевое слово operator, позволяющее создать операторный метод, который определяет действие оператора, связанное с его классом.
Существует две формы методов operator: одна используется для унарных операторов, а другая — для бинарных. Общий же формат (для обоих случаев) таков:
// Общий формат перегрузки для унарного оператора,
public static тип_возврата operator ор{
тип_параметра операнд)
{
// операции
}
// Общий формат перегрузки для бинарного оператора,
public static тип_возврата operator op{
тип_параметра1 операнд1,
тип_параметра2 операнд2)
{
// операции
}
Здесь элемент ор — это оператор (например " + " или " / "), который перегружается. Элемент тип_возврата — это тип значения, возвращаемого при выполнении заданной операции. Несмотря на то что можно выбрать любой тип, тип возвращаемого значения чаще всего будет совпадать с типом класса, для которого этот оператор перегружается. Такая корреляция облегчает использование перегруженного оператора в выражениях. Для унарных операторов операнд передается в элементе операнд, а для бинарных — в элементах операнд1 и операнд2.
Для унарных операторов тип операнда должен совпадать с классом, для которого определен оператор. Что касается бинарных операторов, то тип хотя бы одного операнда должен совпадать с соответствующим классом. Таким образом, С#-операторы нельзя перегружать для классов, не созданных вами. Например, вы не можете перегрузить оператор "+" для типов int или string. И последнее: параметры операторов не должны использовать модификатор ref или out.
Дата публикования: 2015-06-12; Прочитано: 165 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!