Встроенные типы С# и системные типы
Простой тип С# | Системный тип | Диапазон значений | Описание типа |
sbyte | SByte | -128 .. +127 | Целое число со знаком, занимает 1 байт |
byte | Byte | 0 .. 255 | Целое число без знака, занимает 1 байт |
short | Int16 | -32 768 .. 32 767 | Короткое 16 битовое целое число со знаком, занимает 2 байта |
ushort | UInt16 | 0 .. 65 535 | Короткое 16 битовое целое число без знака, занимает 2 байта |
int | Int32 | -2 147 483 648 .. 2 147 483 647 | Целое 32 битовое число со знаком, занимает 4 байта |
uint | UInt32 | 0 .. 4 294 967 295 | Целое 32 битовое число без знака, занимает 4 байта |
long | Int64 | 9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 | Длинное целое 64-битовое число со знаком, занимает 8 байт |
ulong | UInt64 | 0 .. 18 446 744 073 709 551 615 | Длинное целое 64-битовое число без знака, занимает 8 байт |
char | Char | Код символа | Один 16 битовый символ (расширенная таблица кодов символов Unicode), занимает 2 байта |
float | Single | -3.40282e-038…3.40282e+038 | Вещественное 32-битовое число одинарной точности с плавающей запятой, занимает 4 байта |
double | Double | -1.79769e-308…1.79769e+308 | Вещественное 64-битовое число двойной точности с плавающей запятой, занимает 8 байт |
bool | Boolean | true или false | Логические данные |
decimal | Decimal | 1Е-28 –7.9Е+28 | 128-рзрядный тип данных с точностью до 28 или 29 знака. Используется главным образом в финансовых приложениях, для которых требуется высокая точность. |
string | String | Ограничено системной памятью | Строка символов Unicode |
object | Object | Практически всё что угодно. Все типы происходят от класса System.Object. |
У всех встроенных типов есть значение по умолчанию (0-для числовых, false- для bool, null – для string, object), но в методах классов переменные нужно инициализировать.
Пространства имен
Пространства имен(namespaces) используются в С#-приложениях для определения области видимости. Объявив пространство имен, разработчик может дать С#-приложению иерархическую структуру, основанную на семантически связанных группах типов и других (вложенных) пространствах имен. В формировании одного пространства имен могут участвовать несколько файлов исходного кода. Это обстоятельство позволяет при компоновке единого пространства имен из нескольких классов определять каждый класс в собственном файле исходного кода. Программист, использующий созданные вами классы, получит доступ ко всем классам в пространстве имен через ключевое слово using.
Пространства имен служат для логической группировки пользовательских типов. Применение пространств имен обосновано в крупных программных проектах для снижения риска конфликта имен и улучшения структуры библиотек кода.
Синтаксис описания пространства имен следующий:
namespace <имя пространства имен> {
[<компоненты пространства имен>]
}
Компонентами пространства имен могут быть классы, делегаты, перечисления, структуры и другие пространства имен. Само пространство имен может быть вложено только в другое пространство имен.
Если в разных местах программы (возможно, в разных входных файлах) определены несколько пространств имен с одинаковыми именами, компилятор собирает компоненты из этих пространств в общее пространство имен. Для этого только необходимо, чтобы одноименные пространства имен находились на одном уровне вложенности в иерархии пространств имен.
Для доступа к компонентам пространства имен используется синтаксис <имя пространства имен>.<имя компонента>. Для компилируемых входных файлов имя пространства имен по умолчанию (если в файле нет обрамляющего пространства имен) можно задать специальной опцией компилятора.
Для использования в программе некоего пространства имен служит команда using. Ее синтаксис следующий:
using <имя пространства имен>;
или
using [<имя псевдонима> =] <имя пространства>[.<имя типа>];
Импортирование пространства имен позволяет сократить трудозатраты программиста при наборе текстов программ. Псевдоним, используемый при импортировании, это обычно короткий идентификатор для ссылки на пространство имен (или элемент из пространства имен) в тексте программы. Импортировать можно пространства имен из текущего проекта, а также из подключенных к проекту сборок.
9. Операции ввода и вывода. Чтение строки символов. Преобразование строки символов в число. Формат вывода.
1.1. Операции ввода и вывода. Чтение строки символов. Преобразование строки символов в число, метод Parse(). Формат вывода
Пространство имён System включает в себя класс Console, в котором содержатся методы, необходимые для чтения с клавиатуры и вывода данных на экран. Это методы: Console.ReadLine(), Console.Read(), Console.WriteLine(), Console.Write()
Метод Console.ReadLine() позволяет выполнять чтение данных с клавиатуры. Полученные данные могут быть сохранены в строковой переменной (тип string).
Метод Console.WriteLine() служит для вывода информации с новой строки. Метод Console.Write() служит для вывода информации в текущей строке. В этих методах можно использовать строковые литералы (в двойных кавычках) в качестве поясняющего текста, а также подстановочные выражения или параметры {0}, {1}, {2}, …, {n}. Параметры {0}, {1}, {2}, …, {n} – это индексированные знакоместа. Первое знакоместо имеет индекс 0, второе – 1 и т. д.
Метод Console.Read() считывает один символ. Его используют для организации задержки вывода на экране (ожидание нажатия клавиши ввода), а также для определения числового кода введенного символа. Например,
Console.WriteLine(“Введите любой символ!”);
int s=Console.Read();
Console.WriteLine(“Код символа - {0}”,s);
Второй вариант вывода данных: значения переменных можно выводить с помощью операции конкатенации (соединения), которая обозначается знаком +. Например,
int godr=1998;
Console.WriteLine(“Я родился в ” + godr + “ году.”);
Ввод данных. Системные типы – это структуры, определенные в среде .NET Framework, которые имеют статические методы. Метод Parse(string) преобразует строку, например, в целочисленное значение:
int x=Int32.Parse(st);
Метод Console.ReadLine() вводит строку символов. Чтобы преобразовать строку в число, нужно применить метод Parse(string). Для этого нужно:
1)объявить строковую переменную
string st;
2)с помощью метода Console.ReadLine() ввести эту строку st=Сonsole.ReadLine();
3)преобразовать строку в число, если целое:
int x=Int32.Parse(st);
Или, второй вариант ввода данных, можно предварительно не объявлять строковую переменную,а дляметода Parse(string) в качестве параметра применить вызов метода Console.ReadLine():
double srbal=Double.Parse(Console.ReadLine());
Формат вывода данных. Для форматирования вывода вещественных значений можно использовать расширенную форму параметров:
{Номер аргумента, ширина : формат вывода в виде #.###}
Например: Console.WriteLine(“Выражение х/3= {0: #.####}“ , х/3);