Найти в Дзене
Ropedann | Кирилл Пашков

№4 [Основы программирования на C#]Типы данных в C#

Тип данных определяет, какие значения может принимать переменная и какие операции с ней допустимы. В C# базовые типы делятся на несколько категорий, каждая из которых имеет свои особенности. Логические
Хранят значения true или false.
Представлены типом bool (System.Boolean): bool alive = true; bool isDead = false; Целочисленные
Хранят целые числа разных диапазонов: byte b = 255; sbyte sb = -128; short sh = 1000; ushort ush = 50000; int i = 12345; uint ui = 12345; long l = 9223372036854775807; ulong ul = 18446744073709551615; Числа с плавающей точкой
Для хранения дробных чисел: float f = 3.14F; double d = 3.14; decimal dec = 12345.6789M; Символьные
Хранят одиночный символ в кодировке Unicode: char letter = 'A'; char unicodeChar = '\u0416'; // Ж Строковые
Хранят набор символов: string greeting = "Hello, World!"; Объектные
Хранят значения любого типа. Базовый тип для всех типов в C#: object num = 42; object text = "Hello"; Пример работы с типами string name = "Tom"; int age = 33; bool i
Оглавление

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

Категории базовых типов

Логические
Хранят значения true или false.
Представлены типом bool (System.Boolean):

bool alive = true;
bool isDead = false;

Целочисленные
Хранят целые числа разных диапазонов:

  • byte: от 0 до 255 (System.Byte)
byte b = 255;
  • sbyte: от -128 до 127 (System.SByte)
sbyte sb = -128;
  • short: от -32,768 до 32,767 (System.Int16)
short sh = 1000;
  • ushort: от 0 до 65,535 (System.UInt16)
ushort ush = 50000;
  • int: от -2,147,483,648 до 2,147,483,647 (System.Int32)
int i = 12345;
  • uint: от 0 до 4,294,967,295 (System.UInt32)
uint ui = 12345;
  • long: от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 (System.Int64)
long l = 9223372036854775807;
  • ulong: от 0 до 18,446,744,073,709,551,615 (System.UInt64)
ulong ul = 18446744073709551615;

Числа с плавающей точкой
Для хранения дробных чисел:

  • float: от -3.4×10³⁸ до 3.4×10³⁸, 4 байта (System.Single)
float f = 3.14F;
  • double: от ±5.0×10⁻³²⁴ до ±1.7×10³⁰⁸, 8 байт (System.Double)
double d = 3.14;
  • decimal: от ±1.0×10⁻²⁸ до ±7.9×10²⁸, 16 байт (System.Decimal)
decimal dec = 12345.6789M;

Символьные
Хранят одиночный символ в кодировке Unicode:

char letter = 'A';
char unicodeChar = '\u0416'; // Ж

Строковые
Хранят набор символов:

string greeting = "Hello, World!";

Объектные
Хранят значения любого типа. Базовый тип для всех типов в C#:

object num = 42;
object text = "Hello";

Пример работы с типами

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

Использование суффиксов

Для дробных чисел:F/f: для типа float
M/m: для типа decimal

float f = 3.14F;
decimal dec = 123.45M;

Для целых чисел:

  • U/u: для типа uint
  • L/l: для типа long
  • UL/ul: для типа ulong
uint u = 123U;
long l = 123L;
ulong ul = 123UL;

Системные типы

Встроенные типы, такие как int, string, являются сокращениями для системных типов, например:

int a = 10; // сокращение
System.Int32 b = 10; // эквивалентная запись

Неявная типизация

Ключевое слово var позволяет компилятору автоматически определять тип переменной на основе присвоенного значения:

var message = "Hello"; // тип string
var number = 42; // тип int

Ограничения:

1. Нельзя объявить переменную var без инициализации:

// Ошибка
var data;
data = 42;

2. Нельзя присваивать null:

// Ошибка
var obj = null;

Вопросы для самопроверки

  1. Какие типы данных используются для хранения целых чисел? Укажите их диапазоны.
  2. Как указать, что дробное число является типом float?
  3. Чем decimal отличается от double?
  4. Что означает неявная типизация? Приведите пример.
  5. Как объявить переменную типа object и присвоить ей строку?

Задачи для практики

1. Создайте переменные разных типов

  • Создайте переменные для хранения имени, возраста, веса, рабочего статуса и выведите их значения на консоль.

2. Работа с дробными числами

  • Создайте переменные типа float, double, decimal. Присвойте им значения с использованием суффиксов и выведите на консоль.

3. Неявная типизация

  • Используйте var для объявления переменных типа int, string, bool. Выведите их значения и типы данных на консоль.

4. Использование системных типов

  • Создайте две переменные: одну типа int, другую типа System.Int32. Присвойте им одинаковые значения и выведите их на консоль.

5. Вычисления с числами

  • Создайте переменные для хранения числа Pi (3.14159), радиуса окружности и вычислите площадь круга. Используйте тип float или double.