Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET.


Информационный Канал Subscribe.Ru


C# и .NET. Уроки с сайта http://progs.biz

Рассылка №2

Основы C#. Урок 4. Переменные языка C#.
Основы C#. Урок 5. Логические операторы.
Основы C#. Урок 6. Массивы в C#.

Полные версии уроков (с картинками) можно найти по адресам
Урок 4. Переменные языка C#.
Урок 5. Логические операторы.
Урок 6. Массивы в C#.

Основы C#. Урок 4. Переменные языка C#

Для каждого типа данных C# существует соответствующий тип данных в CRL (Common Language Runtime). Подробности CRL см. в уроке 2. Это, в частности, означает, что каждый тип имеет два названия - полный (из CLR, его можно использовать в любом языке .NET) и сокращенный, который используется в C#. Что за название использовать - это дело вкуса. Но короткие названия во-первых, короче, и во-вторых, как-то привычнее, так что мы в наших уроках будем использовать короткие названия C#. На этом же уроке мы приведем как полные названия (из CLR), так и краткие.

Основные типы данных перечислены в следующей таблице:

Тип C# Тип CLR Размер в байтах Пояснение
int Int32 4 Целое (со знаком)
float Single 4 Вещественное число
char Char - Символ (Unicode)
bool Boolean - Логический тип
short Int16 2 Короткое целое (со знаком)
long Int64 8 Длинное целое (со знаком)
string String - строка
byte Byte 1 байт
decimal Decimal 8 Вещественное число фиксированной точности

Если вы предпочитаете использовать длинные имена, то вы должны писать что-то вроде System.Int32 для типа int и т. п. (т. е. приписывать слово System перед CLR-именем). Или же вы должны добавить строчку

using System;

в начале программы (хотя, впрочем, она там скорей всего и так есть).

Таким образом следующие три объявления переменной k равносильны:

int k;
using System;
 ...
Int32 k;

и

System.Int32 k;

Разумеется, аналогично мы имеем дело и другими типами языка C#.

Объявление переменной можно совместить с инициализацией (заданием начального значения):

int z=88;

Набор операторов для C# достаточно стандартен + , -, *, / - действуют как и в любом другом языке. Отметим только, что / (деление) применительно к целым числам дает целую часть от деления. Так, фрагмент

  int k=100999, n=1000, s;
  s=k/n;
  Console.WriteLine(s.ToString());

выведет на экран 100, а не 101, т. е. никакого округления не происходит.

Есть еще один оператор - %. Это - остаток от деления. Следующий фрагмент выведет на экран 999:

  int k=100999, n=1000, s;
  s=k%n;
  Console.WriteLine(s.ToString());

Как и в других C-подобных языках, в C# существуют операторы инкремента и декремента. Так, после следующего фрагмента k увеличится на 1, а n - уменьшится на 1:

k++;
n--;
Наверх

Основы C#. Урок 5. Логические операторы

Как и в других C-подобных языках, в C# существуют следующие логические операторы:

Оператор Описание Пример
&& Логическое И. Результат равен true, только если оба операнда равны true (x==8) && (y==5)
|| Логическое ИЛИ. Результат равен false, только если оба операнда равны false (y>8) || (y<5)
! Отрицание. Изменяет логическое значение на противоположное if(!(a==b))...

Все эти операторы возвращают результат типа bool.

Обратите внимание, что для логического равно (т. е. для ответа на вопрос "Верно ли, что что-то равно чему-то") используется знак двойного равенства (==). Знак же одинарного равенства (=) используется для присваивания. Для знака == существует парный знак != ("не равно"). Так, приведенный выше пример для оператора ! можно переписать так:

if(!(a==b))...

Отметим, что в C#, в отличии от многих других языков программирования, нельзя вместо false использовать 0, а вместо true - любое ненулевое число. Так, следующий фрагмент содержит ошибку:

  int k;
  ...
  if(k) //Ошибка!
  ...
Наверх

Основы C#. Урок 6. Массивы в C#

Массивы в C# несколько отличаются от других C-подобных языков. Начнем сразу с примеров. Пример первый:

  ...
  int[] k; //k - массив
  k=new int [3]; //Определяем массив из 3-х целых
  k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива
  //Выводим третий элемент массива
  Console.WriteLine(k[2].ToString());
  ...

Смысл приведенного фрагмента ясен из комментариев. Обратите внимание на некоторые особенности. Во-первых, массив определяется именно как

int[] k;

а не как один из следующих вариантов:

int k[]; //Неверно!
int k[3]; //Неверно!
int[3] k; //Неверно!

Во-вторых, так как массив представляет из себя ссылочный объект, то для создания массива необходима строка

k=new int [3];

Именно в ней мы и определяем размер массива. Хотя, вообще говоря, как и в C/C++ возможны конструкции вида

int[] k = new int [3];

Элементы массива можно задавать сразу при объявлении. Вот пример:

int[] k = {-5, 4, 55};

Разумеется, приведенные конструкции применимы не только к типу int и не только к массиву размера 3.

В C#, как и в C/C++, нумерация элементов массива идет с нуля. Таким образом в нашем примере начальный элемент массива - это k[0], а последний - k[2]. Элемента k[3], разумеется, нет.

Теперь переходим к многомерным массивам. Вот так задается двумерный массив:

int[,] k = new int [2,3];

Обратите внимение, что пара квадратных скобок только одна. Естественно, что в нашем примере у массива 6 (=2*3) элементов (k[0,0] - первый, k[1,2] - последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:

int[,,] k = new int [10,10,10];

А вот так можно сразу инициализировать многомерные массивы:

int[,] k = {{2,-2},{3,-22},{0,4}};

Приведенные выше примеры многомерных массивов называются прямоугольными. Если их представить в виде таблицы (в двумерном случае), то массив будет представлять из себя прямоугольник.

Наряду с прямоугольными массивами существуют так называемые ступенчатые. Вот пример:

  //Объявляем 2-мерный ступенчатый массив
  int[][] k = new int [2][];
  //Объявляем 0-й элемент нашего ступенчатого массива
  //Это опять массив и в нем 3 элемента
  k[0]=new int[3];
  //Объявляем 1-й элемент нашего ступенчатого массива
  //Это опять массив и в нем 4 элемента
  k[1]=new int[4];
  k[1][3]=22; //записываем 22 в последний элемент массива
  ...

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива). И точно так же мы что-нибудь делаем с элементами массива - записываем, читаем и т. п.

Самая важная и интересная возможность у ступенчатых массивов - это их "непрямоугольность". Так, в приведенном выше примере в первой "строке" массива k три целых числа, а во второй - четыре. Часто это оказывается очень к месту.

Наверх

Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное