Последнее обновление: 13.11.2017. Использование суффиксов. Использование суффиксов
Как и во многих языках программирования, в C# есть своя система типов данных, которая используется для создания переменных. Тип данных определяет внутреннее представление данных, множество значений, которые может принимать объект, а также допустимые действия, которые можно применять над объектом.
В языке C# есть следующие примитивные типы данных:
- bool: хранит значение true или false (логические литералы). Представлен системным типом System.Boolean
1
2
| bool alive = true;
bool isDead = false;
|
- byte: хранит целое число от 0 до 255 и занимает 1 байт. Представлен системным типом System.Byte
1
2
| byte bit1 = 1;
byte bit2 = 102;
|
- sbyte: хранит целое число от -128 до 127 и занимает 1 байт. Представлен системным типом System.SByte
1
2
| sbyte bit1 = -101;
sbyte bit2 = 102;
|
- short: хранит целое число от -32768 до 32767 и занимает 2 байта. Представлен системным типом System.Int16
1
2
| short n1 = 1;
short n2 = 102;
|
- ushort: хранит целое число от 0 до 65535 и занимает 2 байта. Представлен системным типом System.UInt16
1
2
| ushort n1 = 1;
ushort n2 = 102;
|
- int: хранит целое число от -2147483648 до 2147483647 и занимает 4 байта. Представлен системным типом System.Int32. Все целочисленные литералы по умолчанию представляют значения типа int:
1
2
3
| int a = 10;
int b = 0b101; // бинарная форма b =5
int c = 0xFF; // шестнадцатеричная форма c = 255
|
- uint: хранит целое число от 0 до 4294967295 и занимает 4 байта. Представлен системным типом System.UInt32
1
2
3
| uint a = 10;
uint b = 0b101;
uint c = 0xFF;
|
- long: хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт. Представлен системным типом System.Int64
1
2
3
| long a = -10;
long b = 0b101;
long c = 0xFF;
|
- ulong: хранит целое число от 0 до 18 446 744 073 709 551 615 и занимает 8 байт. Представлен системным типом System.UInt64
1
2
3
| ulong a = 10;
ulong b = 0b101;
ulong c = 0xFF;
|
- float: хранит число с плавающей точкой от -3.4*1038 до 3.4*1038 и занимает 4 байта. Представлен системным типом System.Single
- double: хранит число с плавающей точкой от ±5.0*10-324 до ±1.7*10308 и занимает 8 байта. Представлен системным типом System.Double
- decimal: хранит десятичное дробное число. Если употребляется без десятичной запятой, имеет значение от 0 до +/–79 228 162 514 264 337 593 543 950 335; если с запятой, то от 0 до +/–7,9228162514264337593543950335 с 28 разрядами после запятой и занимает 16 байт. Представлен системным типом System.Decimal
- char: хранит одиночный символ в кодировке Unicode и занимает 2 байта. Представлен системным типом System.Char. Этому типу соответствуют символьные литералы:
1
2
3
| char a = 'A';
char b = '\x5A';
char c = '\u0420';
|
- string: хранит набор символов Unicode. Представлен системным типом System.String. Этому типу соответствуют символьные литералы.
1
2
| string hello = "Hello";
string word = "world";
|
- object: может хранить значение любого типа данных и занимает 4 байта на 32-разрядной платформе и 8 байт на 64-разрядной платформе. Представлен системным типом System.Object, который является базовым для всех других типов и классов .NET.
1
2
3
| object a = 22;
object b = 3.14;
object c = "hello code";
|
Например, определим несколько переменных разных типов и выведем их значения на консоль:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| using System;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
string name = "Tom";
int age = 33;
bool isEmployed = false;
double weight = 78.65;
Console.WriteLine($"Имя: {name}");
Console.WriteLine($"Возраст: {age}");
Console.WriteLine($"Вес: {weight}");
Console.WriteLine($"Работает: {isEmployed}");
}
}
}
|
Для вывода данных на консоль здесь применяется интерполяция: перед строкой ставится знак $ и после этого мы можем вводить в строку в фигурных скобках значения переменных. Консольный вывод программы:
Имя: Tom
Возраст: 33
Вес: 78,65
Работает: False
Использование суффиксов
При присвоении значений надо иметь в виду следующую тонкость: все вещественные литералы рассматриваются как значения типа double. И чтобы указать, что дробное число представляет тип float или тип decimal, необходимо к литералу добавлять суффикс: F/f - для float и M/m - для decimal.
1
2
3
4
5
| float a = 3.14F;
float b = 30.6f;
decimal c = 1005.8M;
decimal d = 334.8m;
|
Подобным образом все целочисленные литералы рассматриваются как значения типа int. Чтобы явным образом указать, что целочисленный литерал представляет значение типа uint, надо использовать суффикс U/u, для типа long - суффикс L/l, а для типа ulong - суффикс UL/ul: