Using System.Drawing; // Явно ссылаемся на пространство имен

Class myClass

{ public void DoIt()

{ // Создаем изображение 20 на 20 пикселей

Bitmap bm = new Bitmap(20, 20);

...

}

}

Можно указывать составное имя класса:

Class myClass

{ public void DoIt()

{ // Создаем изображение 20 на 20 пикселей

System.Drawing.Bitmap bm = new System.Drawing.Bitmap(20, 20);

...

}

}

Выражения и операции

(http://msdn.microsoft.com/ru-ru/library/ms173142)

(http://msdn.microsoft.com/ru-ru/library/6a71f45d)

Таблица 2.6. Операции по категориям и их приоритет

Выражение Описание (приоритет)
  Основные операторы (9)
x.y Доступ к членам
f(x) Вызов функции, метода и делегата
a[x] Доступ к элементу массива
x++ Постфиксное приращение (инкремент)
x-- Постфиксное уменьшение (декремент)
new T(...) Создание объекта и делегата
new T(...){...} Создание объекта с инициализатором
new {...} Анонимный инициализатор объекта
new T[...] Создание массива.
typeof(T) Получение объекта System.Type для T (определение типа)
checked(x) Вычисление выражения в проверенном контексте (создание проверяемого блока)
unchecked(x) Вычисление выражения в непроверенном контексте (создание непроверяемого блока)
default(T) Получение значения по умолчания для типа T
delegate {} Анонимная функция (анонимный метод)
x->y Объединение разыменования указателя и доступа к члену (x – это указатель типа T*, а y – это член T) (требуется небезопасный контекст)
    Унарные операторы (8)
+x Унарный плюс
-x Унарный минус
!x Логическое отрицание
~x Поразрядное отрицание (инверсия разрядов)
++x Префиксное приращение (инкремент)
--x Префиксное уменьшение (декремент)
(T)x Явное преобразование типа переменной x в тип T
& Унарный оператор возвращает адрес своего операнда (требуется небезопасный контекст)
sizeof(x) Определяет размер в байтах для переменной встроенного типа (а также ссылочного типа, типа указателей, структур).
    Мультипликативные операторы (7)
* Умножение
/ Деление
% Остаток от деления
    Аддитивные операторы (6)
x + y Сложение, объединение строк, объединение делегатов
x - y Вычитание, удаление делегатов
    Операторы сдвига (5)
x << y Сдвиг влево
x >> y Сдвиг вправо
    Операторы отношения и типа (4)
x < y Меньше
x > y Больше
x <= y Меньше или равно
x >= y Больше или равно
x is T Проверка принадлежности к типу. Возвращает значение true, если x относится к типу T, в противном случае возвращает значение false
x as T Преобразование типа. Возвращает x типа T или нулевое значение, если x не относится к типу T
    Операторы равенства (3)
x == y Равно
x != y Не равно
    Логические, условные операторы и Null-операторы (2)
x & y Логическое умножение – для операндов типа bool. Поразрядное И (AND) – для целых операндов
x | y Логическое сложение – для операндов типа bool. Поразрядное ИЛИ (OR) – для целых операндов
x ^ y Логическое исключающее ИЛИ – для операндов типа bool. Поразрядное исключающее ИЛИ (XOR) – для целых операндов
x && y Условное умножение (AND) – вычисляет y только если x имеет значение true
x || y Условное сложение (OR) – вычисляет y только если x имеет значение false
x ?? y Объединение нулей – равно y, если x – нулевое, в противном случае равно x
x ?: y : z Условная операция. Результат равен y, если x имеет значение true, и z если x имеет значение false
    Операторы назначения и анонимные операторы (1)
= Присваивание
x op= y Составное присваивание. Поддерживает следующие операторы: += , -= , *= , /= , %= , &= , |= , ^= , <<= , >>=
(T x) => y Анонимная функция (лямбда-выражение)


Основные операции.

Операции постфиксных инкремента и декремента:

int x = 1;

Console.WriteLine("{0} {1} {2}", x++, x--, x); // Вывод: 1 2 1

Операция sizeof(x) определяет размер в байтах для переменной встроенного или ссылочного типа, а также типа указателей или структур:

int intSize = sizeof(int); // Результат: intSize = 4

Пример 2.4. Использование операции ->.

/ Компилировать с ключем: /unsafe

Struct Point

{ public int x, y;

}

Class MainClass12

{ unsafe static void Main()

{ Point pt = new Point();

Point* pp = &pt;

pp->x = 123;

pp->y = 456;

Console.WriteLine("{0} {1}", pt.x, pt.y); // Вывод: 123 456

}

}

Унарные операции.

Пример 2.5. Использование операции инверсии разрядов целого числа (~).

using System;

Class Demo

{ public static string ByteToStr(byte b)

// Преобразование байта (b) в двоичную форму

{ string s = ""; // Выходная строка

// Цикл преобразования 8-ми разрядов

for (sbyte n = 7; n >= 0; n--)

{ if ((byte)(b / Math.Pow(2, n)) == 1)

{ s = s + '1';

b = (byte)(b - (byte)(Math.Pow(2, n)));

}

Else

s = s + '0';

}

return s;

}

Static void Main()

{ byte b = 1;

int i = (int) b;

i = ~i;

byte b2 = (byte) (i);

Console.WriteLine("Демонстрация инверсии разрядов " +

"целого числа:");

Console.WriteLine("Значение байта без инверсии: {0,3};\t" +

"двоичная форма: {1}", b, ByteToStr(b));

Console.WriteLine("Значение байта с инверсией: {0,3};\t" +

"двоичная форма: {1}", b2, ByteToStr(b2));

Console.ReadLine();

}

}

/* Вывод:

Демонстрация инверсии разрядов целого числа:

Наши рекомендации