99.31K
Категория: ПрограммированиеПрограммирование

CSharp_60min_urok_ru

1.

C# с нуля — 60-минутный урок
Цели, основы синтаксиса и
мини-проект

2.

Цели урока
Понять: что такое C# и .NET
Поставить инструменты и собрать первый проект
Изучить основы: переменные, условия, циклы
Функции, коллекции и первый класс
Мини-проект: консольный калькулятор

3.

План занятия и тайминг
0–5 мин — Зачем C# и .NET
5–10 мин — Инструменты, первый проект
10–20 мин — Переменные, ввод/вывод, операторы
20–35 мин — Условия и циклы
35–45 мин — Методы, массивы/списки, класс
45–55 мин — Мини-проект «Калькулятор»
55–60 мин — Резюме, вопросы, что дальше

4.

Что такое C# и где он
используется
• Современный объектно-ориентированный язык, строгая типизация
• Работает на платформе .NET (Windows, macOS, Linux)
• Сферы: веб (ASP.NET Core), игры (Unity), мобильные (MAUI), десктоп,
облако

5.

Платформа .NET — коротко
• CLR/рантайм + SDK + стандартная библиотека
• Единые команды CLI: dotnet new/run/build/test
• Современные шаблоны: top-level statements, глобальные using

6.

Инструменты для работы
.NET SDK
IDE: Visual Studio / VS Code (+ C# Dev Kit) / Rider
Терминал: PowerShell / Bash / Zsh
Проверка: dotnet --version, dotnet --info

7.

Первый проект: Hello, C#
# В терминале
dotnet new console -n HelloCSharp
cd HelloCSharp
dotnet run
// Program.cs (top-level statements)
Console.WriteLine("Hello, C#!");
Шаблон консольного приложения уже содержит точку входа.

8.

Анатомия программы
// Классический вариант с явным Main
using System;
class Program
{
static void Main()
{
Console.WriteLine("Привет из Main!");
}
}

9.

Типы и переменные
int year = 2025;
double pi = 3.1415;
decimal price = 19.99m;
bool isReady = true;
char letter = 'A';
string name = "Алиса";
var count = 10; // выведет int

10.

Ввод/вывод и преобразования
Console.Write("Введите возраст: ");
string? input = Console.ReadLine();
if (int.TryParse(input, out int age))
{
Console.WriteLine($"Через год вам будет {age + 1}");
}
else
{
Console.WriteLine("Это не похоже на число.");
}
Используйте TryParse для безопасных преобразований.

11.

Операторы
int a = 5, b = 2;
Console.WriteLine(a / b);
// 2 (целочисленное деление)
Console.WriteLine((double)a / b); // 2.5
// Арифметика: + - * / %
// Сравнение: == != < > <= >=
// Логика: && || !

12.

Условия: if/else и switch
int temp = 15;
if (temp < 0) Console.WriteLine("Очень холодно");
else if (temp < 20) Console.WriteLine("Прохладно");
else Console.WriteLine("Тепло");
// Современный switch-выражение
string mood = temp switch
{
< 0 => "Мороз",
>= 0 and < 20 => "Прохладно",
_ => "Тепло"
};
Console.WriteLine(mood);

13.

Циклы: for / while / foreach
for (int i = 0; i < 3; i++)
Console.WriteLine(i);
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
foreach (var ch in "C#")
Console.WriteLine(ch);

14.

Методы (функции)
class Program
{
static void Main()
{
Console.WriteLine(Sum(3, 4)); // 7
}
static int Sum(int a, int b) => a + b;
}

15.

Массивы и списки
int[] nums = { 1, 2, 3 };
Console.WriteLine(nums[0]); // 1
var fruits = new List<string> { "яблоко", "банан" };
fruits.Add("киви");
Console.WriteLine(fruits.Count); // 3
foreach (var f in fruits) Console.WriteLine(f);
List<T> — динамическая коллекция. Подключите System.Collections.Generic;

16.

ООП 101: класс и объект
class Person
{
public string Name { get; set; }
public int Age { get; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public void SayHi() => Console.WriteLine($"Привет, я {Name}, мне
{Age}");
}
var p = new Person("Алиса", 20);
p.SayHi();

17.

Обработка ошибок и отладка
try
{
int x = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine($"Ошибка формата: {ex.Message}");
}
finally
{
Console.WriteLine("Готово.");
}
Ставьте breakpoints и шагайте по коду в отладчике.

18.

Мини-проект: консольный
калькулятор
while (true)
{
Console.Write("Операция (+ - * /, q для выхода): ");
var op = Console.ReadLine();
if (op == "q") break;
Console.Write("a: ");
if (!double.TryParse(Console.ReadLine(), out double a)) {
Console.WriteLine("Введите число!"); continue; }
Console.Write("b: ");
if (!double.TryParse(Console.ReadLine(), out double b)) {
Console.WriteLine("Введите число!"); continue; }
double? result = op switch
{
"+" => a + b,
"-" => a - b,
"*" => a * b,
"/" => b != 0 ? a / b : null,
_ => null
};
Console.WriteLine(result is null ? "Неверная операция или
деление на 0" : $"= {result}");
}

19.

Задания на закрепление
(домашка)
• Угадай число (1..100) — подсказки выше/ниже
• Конвертер температуры (C↔F)
• Список дел: добавить/показать/удалить пункты (List<string>)

20.

Что дальше изучать
LINQ и коллекции
Файлы и JSON-сериализация
Асинхронность: async/await
Тестирование (xUnit), SOLID
ASP.NET Core, Unity, .NET MAUI

21.

Резюме и вопросы
• Переменные → условия → циклы → методы → коллекции → класс
• Мини-проект готов: калькулятор
• Готовы писать небольшие утилиты и тренироваться дальше

22.

Приложение A — Чек-лист
установки
Установить .NET SDK
Выбрать IDE: VS / VS Code (+ C# Dev Kit) / Rider
`dotnet --version` должен показать номер
Создать проект: dotnet new console -n MyApp
Запустить: dotnet run

23.

Приложение B — Горячие
клавиши
• VS Code: F5 — Debug, Ctrl+~ — терминал, Ctrl+. — быстрые фиксы
• Visual Studio: F5 — Debug, Ctrl+F5 — без отладки, F9 — breakpoint

24.

Приложение C — Скелет
программы
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Ваша логика здесь
}
}
English     Русский Правила