Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции все вместе / Lektsia1_Vvedenie.doc
Скачиваний:
6
Добавлен:
20.04.2015
Размер:
357.89 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

Событие.

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

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

Category

Bits

Type

Range/Precision

Signed integral

8

sbyte

–128...127

16

short

–32,768...32,767

32

Int

–2,147,483,648...2,147,483,647

64

Long

–9,223,372,036,854,775,808...9,223,372,036,854,775,807

Unsigned integral

8

Byte

0...255

16

ushort

0...65,535

32

Uint

0...4,294,967,295

64

ulong

0...18,446,744,073,709,551,615

Floating point

32

float

1.5 × 10−45 to 3.4 × 1038, 7-digit precision

64

double

5.0 × 10−324 to 1.7 × 10308, 15-digit precision

Decimal

128

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 literal

chars[1] = '\x0058'; // Hexadecimal

chars[2] = (char)88; // Cast from integral type

chars[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);

}

}

}

Соседние файлы в папке лекции все вместе