- Объявлять переменную и присваивать ей значение
- Правильно выбирать между
int,double,decimal,bool,char,stringиvar - Преобразовывать типы: приведение
(double)иint.Parse - Использовать интерполяцию строк, форматы и методы строк
В игре у игрока есть имя, очки, оставшиеся жизни и уровень. Программа должна где-то хранить эти данные и менять их по ходу игры. Для этого служат переменные. В C# у каждой переменной есть тип, который определяет, какие значения в ней можно хранить.
Переменные
Чтобы объявить переменную, сначала пишут тип, потом имя, а знаком = присваивают значение. Позже переменной можно дать новое значение, но только того же типа. Имена обычно начинаются со строчной буквы, а каждое следующее слово — с заглавной: playerName, livesLeft.
string playerName = "Leyla";
int score = 0;
int livesLeft = 3;
bool isGameOver = false;
score = score + 50;
score += 25;
livesLeft--;
Console.WriteLine(playerName);
Console.WriteLine(score);
Console.WriteLine(livesLeft);
Console.WriteLine(isGameOver);Leyla 75 2 False
score += 25— сокращение дляscore = score + 25; есть также-=,*=и/=.livesLeft--уменьшает значение на 1, а++увеличивает на 1.- Значение
boolвыводится с заглавной буквы —TrueилиFalse, а в коде пишется строчными:true,false.
Основные типы
| Тип | Что хранит | Пример |
|---|---|---|
int | целые числа (примерно до ±2,1 млрд) | int age = 12; |
long | очень большие целые числа | long views = 3_000_000_000; |
double | дробные числа (измерения, научные расчёты) | double height = 1.52; |
decimal | деньги и точные десятичные расчёты | decimal price = 4.99m; |
bool | логическое значение: true или false | bool isOpen = true; |
char | один символ, в одинарных кавычках | char grade = 'A'; |
string | текст, в двойных кавычках | string city = "Baku"; |
`var` и `const`
Если тип очевиден из правой части, вместо него можно написать var — компилятор сам определит тип. Это не значит, что у переменной нет типа: после var city = "Baku"; переменная city навсегда остаётся string. Для значений, которые никогда не должны меняться, используют const.
var city = "Baku";
var year = 2026;
var price = 2.5m;
const int DaysInWeek = 7;
Console.WriteLine(city.GetType().Name);
Console.WriteLine(year.GetType().Name);
Console.WriteLine(price.GetType().Name);
Console.WriteLine(DaysInWeek * 4);String Int32 Decimal 28
GetType().Name показывает имя типа в .NET: int — на самом деле короткое имя для Int32, а string — для String. Если попробовать написать city = 5;, компилятор выдаст ошибку CS0029: int нельзя преобразовать в string. А DaysInWeek = 8; запрещено вовсе, ведь это константа.
Числа и преобразования
Ты уже знаешь, что 7 / 2 даёт 3. Если нужен дробный результат, преобразуй одно из чисел в double: (double)7 / 2. Такая запись называется приведением типа. В обратную сторону (int)3.99 отбрасывает дробную часть и даёт 3 — без округления! Чтобы превратить текст в число, используют int.Parse, а число в текст — ToString().
using System.Globalization;
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
int apples = 7;
int friends = 2;
Console.WriteLine(apples / friends);
Console.WriteLine((double)apples / friends);
Console.WriteLine((int)3.99);
Console.WriteLine(Math.Round(3.99));
int year = int.Parse("2026");
Console.WriteLine(year + 1);
Console.WriteLine(year.ToString() + "!");3 3.5 3 4 2027 2026!
Строки и интерполяция
Собирать текст через + быстро надоедает. Интерполяция строк удобнее: перед строкой ставят $, а переменные и выражения пишут прямо в тексте внутри фигурных скобок. После двоеточия в скобках можно указать формат: F2 — две цифры после десятичного разделителя, N0 — целое число с разделителями тысяч.
using System.Globalization;
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
string name = "Murad";
int score = 95;
decimal price = 4.5m;
int views = 1234567;
Console.WriteLine("Hi, " + name + "!");
Console.WriteLine($"{name} scored {score} points.");
Console.WriteLine($"Next time: {score + 5}");
Console.WriteLine($"3 tickets: {price * 3:F2} AZN");
Console.WriteLine($"Views: {views:N0}");Hi, Murad! Murad scored 95 points. Next time: 100 3 tickets: 13.50 AZN Views: 1,234,567
Строка — тоже объект, и у неё есть полезные свойства и методы. Важно: строки неизменяемы — методы вроде ToUpper() не меняют исходную строку, а возвращают новую. К символам обращаются по индексу, отсчёт начинается с нуля.
string city = " Baku ";
string clean = city.Trim();
Console.WriteLine(clean.Length);
Console.WriteLine(clean.ToUpper());
Console.WriteLine(clean.Contains("ak"));
Console.WriteLine(clean.Replace("Baku", "Ganja"));
Console.WriteLine(clean[0]);
Console.WriteLine($"[{city}]");4 BAKU True Ganja B [ Baku ]
Trim() не изменил исходную строку city.Главное
- У переменной есть тип, имя и значение:
int score = 0;. - Для целых чисел —
int, для дробей —double, для денег —decimal, для текста —string. varпоручает компилятору вывести тип, но потом тип не меняется;const— значение, которое нельзя изменить.(double)иint.Parseпреобразуют типы;(int)3.99не округляет, а даёт3.- Интерполяция с
$— самый удобный способ составлять текст;{x:F2}показывает два знака после запятой. - Строки неизменяемы:
ToUpper(),Trim()иReplace()возвращают новую строку.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.