Содержание:
1.
Основные понятия языка C#
2.
Встроенные типы С# и системные типы
3.
Переменные, константы.
1.
Основные понятия языка С#
Подобен языкам Java, C++ и VB, однако является
компонентно-ориентированным и более безопасным
Добавлен
ряд новых черт (делегаты, индексаторы, механизм (un)boxing и др.)
Сходство с Java:
объектно-ориентированный
(единственное наследование)
интерфейсы
исключения
нити
(threads)
пространство
имен
сильная
(строгая) типизация
сборка
мусора
отражение
(reflection)
динамическая
загрузка кода
Сходство с С++:
"перегруженные
операторы"
арифметические
операции с плавающей точкой относятся к небезопасному коду
некоторые
особенности синтаксиса
К числу принципиально важных решений, которые
реализованы корпорацией Microsoft в языке программирования C#, можно отнести
следующие:
-компонентно-ориентированный
подход к программированию (который характерен и для идеологии Microsoft .NET в
целом);
-свойства
как средство инкапсуляции данных (характерно также в целом для ООП);
-обработка
событий (имеются расширения, в том числе в части обработки исключений, в
частности, оператор try);
-унифицированная
система типизации (соответствует идеологии Microsoft .NET в целом);
-делегаты
(delegate – развитие указателя на функцию в языках C и C++);
индексаторы
(indexer – операторы индекса для обращения к элементам класса-контейнера);
-перегруженные
операторы (развитие ООП);
-оператор
foreach (обработка всех элементов классов-коллекций, аналог Visual Basic);
-механизмы
boxing и unboxing для преобразования типов;
-атрибуты
(средство оперирования метаданными в COM-модели);
-прямоугольные
массивы (набор элементов с доступом по номеру индекса и одинаковым количеством
столбцов и строк).
2.
Встроенные типы С# и системные типы
В
С# существует множество встроенных или простых типов. Любой встроенный тип С# - это псевдоним для
системного типа,определённого в пространстве имён System.
Простые типы С# и системные типы
Простой тип С#
|
Системный
тип
|
Диапазон
значений
|
Описание
типа
|
sbyte
|
SByte
|
-128…+128
|
Число
со знаком занимает 1 байт
|
byte
|
Byte
|
0…255
|
Чісло без знака занимает 1 байт
|
short
|
Int16
|
-32768…32667
|
Короткое 16 битовое число со знаком (2байта)
|
ushort
|
Uint16
|
0…65535
|
короткое 16 битовое число без знака
|
int
|
Int32
|
-2147483648…2147483647
|
Целое
32 битовое число со знаком
|
uint
|
Uint32
|
0…4294967295
|
Целое
32 битовое без знака целое число
|
long
|
Uint64
|
0…18446744073709551615
|
Знаковое
64-битное целое число(8 байт)
|
ulong
|
0…2^64-1
|
64 битное 8 байтное целое число без знака
|
|
char
|
Char
|
2 байта для расширенной таблицы кодов символов
|
Один
16 битовый символ Юникод
|
float
|
Single
|
-3.40282e+038…3.40282e+038
|
Вещественное
число одинарной точности с плавающей запятой, занимающее 32 бита или 4 байта
|
double
|
Double
|
-1.79769e+308…1.79769e+308
|
Вещественное
число двойной точности с плавающей запятой, занимает 64 бита либо 8 байт
|
bool
|
Boolean
|
True or False
|
Логические
данные
|
decimal
|
Decimal
|
10^0…10^28
|
Число
фиксированной точности или 12 байт
|
string
|
String
|
Ограниченно системной памятью
|
Строка
символов
|
object
|
Object
|
Практически
всё что угодно. Все типы происходят от класса System.Object поэтому объектом является всё
|
У
всех встроенных типов есть значение по умолчанию (0-для числовых, false-bool, null –string, object; но в методах классов переменные нужно инициализировать).
Системные имена называют также
структурами типов значений. Структуры имеют методы. Например Int32 - Parse(string) преобразует
строку символов string в число.
3.
Переменные и константы
Константы
Константа - это объект, значение которого
известно еще до начала работы программы. Константы необходимы для оформления
наглядных программ, незаменимы при использовании в тексте программы многократно
повторяемых значений, удобны в случае необходимости изменения этих значений
сразу во всей программе.
Константа хранит значение, присваиваемое по
завершении компиляции программы, и никогда после этого не изменяется. Константы
объявляются помощью ключевого слова const; их использование способствует
повышению удобочитаемости кода. В языке существует два вида констант:
неименованные константы (цифры и числа,
символы и строки, множества);
именованные константы;
Неименованные константы
Неименованные константы не имеют имен, и
потому их не нужно описывать. Тип неименованной константы определяется
автоматически, по умолчанию:
любая последовательность цифр (возможно,
предваряемая знаком "-" или "+" или разбиваемая одной
точкой) воспринимается компилятором как неименованная константа - число (целое
или вещественное);
любая последовательность символов, заключенная
в апострофы, воспринимается как неименованная константа - строка;
любая последовательность целых чисел, либо
символов через запятую, обрамленная квадратными скобками, воспринимается как
неименованная константа - множество.
Кроме того, существуют две специальные
константы true и false, относящиеся к логическому типу данных. Примерами
использования неименованных констант могут послужить следующие операторы:
a = -10;
b = 12.075 +
х;
c = 'z';
d =
"abc" + string44;
Именованные константы
Именованные константы, как следует из их
названия, должны иметь имя. Стало быть, эти имена необходимо сообщить
компилятору, то есть описать в специальном разделе const.
Если не указывать тип константы, то по ее
внешнему виду компилятор сам определит, к какому (базовому) типу ее отнести.
Любую уже описанную константу можно использовать при объявлении других
констант, переменных и типов данных. Вот несколько примеров описания
нетипизированных именованных констант:
const int
speedLimit = 55;
const double
pi = 3.14159265358979323846264338327950;
Переменные
В C# переменные объявляются с определенным
типом данных и надписью. Если ранее вам приходилось работать со слабо
типизированными языками, например JScript, вы привыкли использовать один тип
"var" для всех переменных, то в C# необходимо указать тип переменной:
int, float, byte, short или другой из более чем 20 различных типов данных. Тип
указывает, помимо всего прочего, точный объем памяти, который следует выделить
для хранения значения при выполнении приложения. При преобразовании переменной
из одного типа в другой язык C# следует определенным правилам. Пример:
int i;
int answer =
42;
string
greeting = "Hello, World!";
double
bigNumber = 1e100;
Console.WriteLine("{0}
{1} {2}", answer, greeting, bigNumber);
Идентификаторы
Имена операторов, переменных, констант, типов
величин, имя самой программы назначаются программистом и называются
идентификаторами. Существуют правила, которым должны отвечать все
идентификаторы:
идентификатор должен быть уникальным, то есть
одним и тем же именем разные объекты не могут быть названы;
идентификатор имеет ограничение по длине
(зависит от конкретной реализации языка на компьютере);
идентификатор может состоять только из
символов латинского алфавита, цифр и знака подчеркивания ("_"),
регистр букв имеет значение;
идентификатор не может начинаться с цифры.
//допустимые
имена
x ,
s5 , Ax6 ,
D_f , _Fm5 , xM_5 , _128
Имена - это идентификаторы. Любая случайным
образом составленная последовательность букв, цифр и знаков подчёркивания с
точки зрения грамматики языка идеально подходит на роль имени любого объекта,
если только она начинающаяся с буквы. Фрагмент программы, содержащий подобную
переменную, будет синтаксически безупречен.
И всё же имеет смысл воспользоваться
дополнительной возможностью облегчить восприятие и понимание
последовательностей операторов. Для этого достаточно закодировать с помощью
имён содержательную информацию.
Желательно создавать составные осмысленные
имена. При создании подобных имён в одно слово можно "втиснуть"
предложение, которое в доступной форме представит информацию о типе объекта,
его назначении и особенностях использования.
Вы можете давать
программным объектам любые имена, но необходимо, чтобы они отличались от
зарезервированных слов, используемых языком, потому что компилятор все равно не
примет переменные с "чужими" именами.