Принципы объектно-ориентированного программирования

         

Унарные операторы



Унарные операторы

Унарных операторов два: плюс и минус. Оператор унарного минуса указывает компилятору, что число отрицательное. Таким образом, в следующем коде а будет равно —42:

using System; using System;

class UnarylApp {



public static void Main()

{

int a = 0;

a = -42;

Console.WriteLine("{0}", a); } }

Однако в этом коде появляется неопределенность: using System;

class Unary2App <

public static void Main() {

int a; int b = 2; int с = 42;

a = b * -с;

Console.WriteLine("{0}", a); > >

Выражение a = b * -с не совсем понятно. Снова повторю, что использование скобок прояснит это выражение:

// При использовании скобок очевидно, что мы // умножаем b на отрицательное число с. а = b * (-с);

Если унарный минус возвращает отрицательное значение операнда, можно подумать, что унарный плюс возвращает положительное. Однако унарный плюс лишь возвращает операнд в его первоначальной форме и больше ничего не делает, т. е. не влияет на операнд. Например, выполнение этого кода приведет к выводу значения -84:

using System;

class UnarySApp {

public static void MainQ {

int a; int b = 2; int с = -42;

a = b * (+c);

Console.WriteLine("{0}", a); } }

Для получения положительного значения служит функция Math.Abs. Этот код выведет значение 84:

using System;

class Unary4App

{

public static void Main()

{

int a; int b = 2; int с = -42;

a = b * Math.Abs(c); Console.Writel_ine("{0}", a); } }

Последний унарный оператор, который я упоминал, — это Т(х). Это разновидность оператора «скобки», позволяющая приводить один тип к другому. Поскольку его можно перегрузить посредством создания пользовательского преобразования, мы обсудим его в главе 13.



Содержание раздела