Событие

Оператор преобразования.

Перегруженный оператор.

Классы и объекты

Класс — это структура данных, объединяющая состояние (поля) и действия (методы и другие функции-члены). Экземпляры класса создаются с помощью оператора new. Класс может содержать статические члены или члены экземпляра. Статические члены принадлежат классам. Члены экземпляра принадлежат объектам (экземплярам класса).

В типе можно определить следующие члены: (Джеффри Рихтер CLR via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке C# Питер, Русская Редакция 2007)

Константа. Идентификатор, определяющий постоянную величину. Константы связаны с типом, а не с экземпляром.

Поле. Представляет неизменяемое или изменяемое значение. Поле может быть статическим – тогда оно является частью типа и экземплярным ­ ­­­- тогда оно является частью объекта.

Метод. Представляет собой функцию, выполняющую операции, которые изменяют или запрашивают состояние типа (статический метод) или объекта (экземплярный метод).

Конструктор экземпляра – метод, используемый для инициализации полей экземпляра при его создании.

Конструктор типа – метод, используемый для инициализации статических полей типа.

Свойство. Для того чтобы можно было изменить значение (получить значение) закрытой переменной, необходимо использовать свойства или функции доступа (accessors). Для вызывающей стороны этот член выглядит как поле, но в реализации типа он выглядит как метод.

Тип. Позволяет определять другие вложенные в него типы.

Встроенные числовые типы (из Спецификации языка C# версии 3.0).

Category Bits Type Range/Precision
Signed integral   sbyte –128...127
  short –32,768...32,767
  Int –2,147,483,648...2,147,483,647
  Long –9,223,372,036,854,775,808...9,223,372,036,854,775,807
Unsigned integral   Byte 0...255
  ushort 0...65,535
  Uint 0...4,294,967,295
  ulong 0...18,446,744,073,709,551,615
Floating point   float 1.5 × 10−45 to 3.4 × 1038, 7-digit precision
  double 5.0 × 10−324 to 1.7 × 10308, 15-digit precision
Decimal   decimal 1.0 × 10−28 to 7.9 × 1028, 28-digit precision

Тип bool используется для представления логических значений true или false.

Тип char используется для объявления символа Юникода (кода UTF-16).

Для создания переменных в программах C# используются оператор объявления. В операторе объявления необходимо указать тип и имя создаваемой переменной. Каждая переменная по значению должна быть инициализирована перед использованием (ей должно быть присвоено значение). Простые типы можно инициализировать с помощью литералов.

Пример. Объявление и инициализация переменных: sbyte, short, int, long. Форматирование числовых результатов при выводе данных на консоль.

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

sbyte sByte1 = 127;

short x = 32767;

int i = 123;

long long1 = 4294967296;

Console.WriteLine("Переменная sbyte{0,4:d} Переменная short{1,6:d} " +

" Переменная int{2,4:d} Переменная long{3,11:d}", sByte1, x, i,long1);

}

}

}

Для форматирования числовых результатов при выводе данных на консоль можно использовать составное форматирование. Общая форма записи спецификатора формата в составном форматировании имеет следующий вид: {номер_ аргумента[, ширина][: формат]}. Парные фигурные скобки ("{" и "}") здесь обязательны.

номер_ аргумента – описатель параметра, число, определяющее соответствующий объект из списка; индексация элементов ведется от нуля. Например, если имеется три объекта, то можно отформатировать сначала второй, а затем первый и третий объекты, задав следующую строку составного форматирования: "{1} {0} {2}".

Необязательный компонент ширина (alignment) — это целое число со знаком, которое служит для указания желательной ширины поля форматирования.

Необязательный компонент формат — это строка формата, соответствующая типу форматируемого объекта.

Пример. Объявление и инициализация переменных: float, double, decimal. Форматирование числовых результатов.

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

float x = 3.5555F;

double y = 3.5555;

decimal myMoney = 300.5m;

Console.WriteLine("Переменная float {0:f} Переменная double {1:f}" +

" Переменная decimal {2:c}", x, y, myMoney);

}

}

}

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

float x = 3.5555F;

double y = 3.5555;

decimal myMoney = 300.5m;

Console.WriteLine("Переменная float {0:##.#} Переменная double {1:#.###}" +

"Переменная decimal {2:c}", x, y, myMoney);

}

}

}

Литералы

Литерал — это представление значения в исходном коде.

Символьные литералы

char[] chars = new char[4];chars[0] = 'X'; // Character literalchars[1] = '\x0058'; // Hexadecimalchars[2] = (char)88; // Cast from integral typechars[3] = '\u0058'; // Unicode

логические литералы
true
false

Литерал_null
null

Целочисленные литералы

Цифры от 0 до 9. Чтобы указать, что литерал представляет собой число без знака, он снабжается

суффиксом u или U, например:

uint i = 12u;

Console.WriteLine("{0:d}", i);

Суффиксы l или L применяются для создания литералов типа long и ulong:

long i = 1222L;

Console.WriteLine("{0:d}", i);

шестнадцатеричные числа

long i = 0xFFFF;

Console.WriteLine("{0:x}", i);

Литералы с плавающей точкой

float i = 10.0f;

Console.WriteLine("{0:f}", i);

double i = -3.7E-10D;

Console.WriteLine("{0:e}", i);

Строковые литералы

string i = "eeeeee\nyyyyyyyyy";

Console.WriteLine(i);

В языке С# строковый литерал может иметь префикс @. Он задает так называемый

буквальный литерал

string i =@"c:\";

Console.WriteLine(i);

Подробнее в спецификации языка C#.

Встроенные числовые типы являются структурами, и к их свойствам и методам и другим членам можно получить доступ.

Пример. Объявление и инициализация переменной типа bool. Вывод данных на консоль.

using System;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

bool b = true;

// WriteLine автоматически конвертирует значение переменной b в текст.

Console.WriteLine(b);

}

}

}

Тип char представляет 16-разрядные целые числа без знака в диапазоне от 0 до 65535. Набор возможных значений для типа char соответствует набору символов Юникода.

Пример. Объявление и инициализация четырех переменных типа char, имеющих одно и тоже значение ­- символ X.

using System;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

char char0 = 'X'; // Символьный литерал

char char1 = '\x0058'; // шестнадцатеричная escape-последовательность

char char2 = (char)88; // Преобразование типа int в char

char char3 = '\u0058'; // Юникод

Console.WriteLine("{0} {1} {2} {3}", char0, char1, char2, char3);

}

}

}

Использование класса System.Console.

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

Пример. Чтение из стандартного входного потока и запись в стандартный выходной поток

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите x");

String name = Console.ReadLine();

int a = int.Parse(name);

Console.WriteLine(a);

}

}

}

В примере статический метод Console.WriteLine("Введите x") записывает данные в стандартный выходной поток; статический метод Console.ReadLine() считывает входные данные из стандартного входного потока. Возвращаемое методом Console.ReadLine() значение присваивается переменной name типа String; статический метод int.Parse(name) преобразует строковое представление числа в эквивалентное ему 32-битовое целое число со знаком. Возвращаемое методом значение присваивается переменной а типа int; Статический метод Console.WriteLine(a) выводит результирующее целочисленное значение на консоль. Пример

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int i = 5;

double y = 9;

Console.WriteLine(i.ToString("d")+" "+y.ToString("f2"));

}

}

}

Использование аргументов командной строки в консольном приложении.

К аргументам командной строки можно получить доступ при помощи дополнительного массива строк, связанного с методом Main. При выполнении приложения в Visual Studio можно указать аргументы командной строки в Страница "Отладка" в конструкторе проектов.

Пример.

using System;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

System.Console.WriteLine("parameter count = {0}", args.Length);

for (int i = 0; i < args.Length; i++)

{

System.Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);

}

}

}

}

Идентификаторы используются для обозначения переменных. В идентификаторах разрешены: знак подчеркивания в качестве начального символа, escape-последовательности Юникода, символ «@» в качестве префикса, чтобы можно было использовать ключевые слова в качестве идентификаторов.

Ключевое слово — это зарезервированная последовательность символов.

Операторы языка

Действия программы выражаются с помощью операторов. Оператор может состоять из одной строки кода, которая заканчивается точкой с запятой, или из ряда однострочных операторов в блоке. Блок оператора заключен в скобки ({}) и может содержать вложенные блоки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: