Унарных операторов два: плюс и минус. Оператор унарного минуса указывает компилятору, что число отрицательное. Таким образом, в следующем коде
а
будет равно —42:
using System; using System;
class UnarylApp {
{
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.