C# 5.0. Карманный справочник

C# 5.0. Карманный справочник
Автор: Джозеф Албахари, Бен Албахари
Год: 2013
ISBN: 978-5-8459-1820-8
Страниц: 288
Язык: Русский
Формат: PDF
Размер: 12 Мб

Download

Если вам нужен ответ на вопрос по программированию на языке С# 5.0, то этот практичный и точно сфокусированный справочник поможет быстро найти ответ — без долгих предисловий и громоздких примеров. Данная книга является идеальным кратким справочником, который легко пролистывать. Если вы уже знаете языки Java, C++ или предыдущие версии языка С#, то нужную информацию найдете очень быстро. Справочник написан авторами известной книги С# 5-0. Справочник. Полное описание языка. В нем изложены все основные темы, касающиеся языка С# 5.0.

+


Основы типов

Тип определяет концепцию для значения. В данном примере мы использовали два литерала типа int со значениями 12 и 30. Мы также объявили переменную типа int с именем х.

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

Все значения в языке C# являются экземплярами конкретного типа. Смысл значения и набор возможных значений, которые может принимать переменная, определяются ее типом.

Примеры предопределенных типов

Предопределенные типы (они также называются встроенными) — это типы, которые специально поддерживаются компилятором. Тип int — это предопределенный тип, описывающий множество целых чисел, которые можно записать в памяти с помощью 32 битов в диапазоне от -231 до 231-1. К экземплярам типа int можно применять функции, например арифметические.

int х = 12 * 30;

Другим предопределенным типом в языке C# является тип string. Этот тип string представляет последовательность символов, например “.NET”.

Тип содержит данные-члены и функции-члены. Данные-члены класса UnitConverter представляют собой поле с именем ratio. Функциями-членами класса UnitConverter являются метод Convert и конструктор класса UnitConverter.

Симметрия между элементарными и пользовательскими типами

Прекрасным свойством языка C# является то, что между предопределенными и пользовательскими типами есть мало различий. Предопределенный тип int является схемой для описаний целых чисел. Он содержит данные — 32 бита — и функции-члены, использующие эти данные, например ToString. Аналогично наш пользовательский тип UnitConverter представляет собой схему для преобразований единиц измерения. Он содержит данные — коэффициент — и функции-члены для работы с этими данными.

Конструкторы и создание объектов

Данные создаются путем создания объекта данного типа. Объекты предопределенных типов можно создавать просто в виде литералов, например 12 или Hello, world”.

Оператор new создает объекты пользовательского типа. В начале метода Main создаются два экземпляра типа UnitConverter. Сразу после того, как оператор new создаст объект, вызывается конструктор объекта для его инициализации. Конструктор определяется как обычный метод, за исключением того, что его имя и тип возвращаемого значения должны совпадать с именем содержащего его класса.

public UnitConverter (int unitRatio) // Конструктор {
ratio = unitRatio;
}

Экземпляр и статические члены

Данные-члены и функции-члены, действующие на экземпляр типа, называются членами экземпляра. Метод Convert класса UnitConverter и метод ToString типа int — это примеры членов экземпляра. По умолчанию члены класса являются членами экземпляра.

Данные-члены и функции-члены, действующие не на экземпляр типа, а на сам тип, называются статическими static. Примерами статических методов являются методы Test.Main и Console.WriteLine. Класс Console на самом деле является статическим классом, т.е. все его члены являются статическими. Экземпляр класса Console никогда не создается — все приложение использует одну консоль.

Для контракта со статическими методами отметим поле экземпляра Name, принадлежащее экземпляру типа Panda, в то время как поле Population принадлежит всем экземплярам типа Panda.

public class Panda {
public string Name; // Поле экземпляра
public static int Population; // Статическое поле
public Panda (string n) // Конструктор
{
Name = n; // Присваиваем поле экземпляра
Population = Population+1; // Увеличиваем статическое поле
}
}

Следующий код создает два экземпляра класса Panda, печатает их имена, а затем распечатывает всю популяцию:

Panda р1 = new Panda ("Pan Dee"):
Panda p2 = new Panda ("Pan Dah"):

Console.WnteLine (pl.Name); // Pan Dee
Console.Writeline (p2.Name); // Pan Dah
Console.WnteLine (Panda. Population): // 2

Ключевое слово public

Ключевое слово public открывает доступ к членам для функций-членов других классов. Если бы в данном примере поле Name в классе Panda не было открытым, то класс Test не имел бы к нему доступа. Ключевое слово public описывает способ общения типа: “Здесь находится то, что можно видеть другим типам, за исключением закрытых деталей моей реализации”. В терминах объектно-ориентированного программирования говорят, что класс инкапсулирует свои закрытые члены.

Преобразования

Язык C# может преобразовывать друг в друга экземпляры сравнимых типов. Преобразование всегда создает новое значение на основе существующего.