0Pricing
C# Academy · Урок

Значения и ссылки; литералы; вывод типов var; const и readonly

Узнайте, чем типы-значения отличаются от ссылочных типов, как работают литералы и числовые суффиксы, когда использовать var и каковы роли const и readonly.

«Значения и ссылки; литералы; вывод типов var; const и readonly» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.

Зачем нужны типы

Цель: понять разницу между типами значений и ссылочными типами, а также разобраться, как переменные, литералы и константы ведут себя в повседневном коде.

Значения и ссылки

Тип значения: при присваивании копирует данные, например int, bool или структура. Ссылочный тип: копирует ссылку, например класс, массив или строка.

  • Значение: более безопасные локальные изменения
  • Ссылка: общий идентификатор объекта

Литералы и суффиксы

У литералов есть типы. Для ясности используйте суффиксы: f (число с плавающей точкой), m (десятичное число), L (длинное целое).

  • 3.14f → число с плавающей точкой
  • 10m → десятичное число (деньги)
  • 123L → длинное целое

Вывод типов var (inference)

var позволяет компилятору вывести тип из выражения справа. Используйте его, когда тип очевиден; в противном случае указывайте тип явно.

const и readonly

const — константа времени компиляции; readonly — значение, задаваемое в конструкторе или при объявлении.

  • Используйте const для фиксированных значений, например числа Пи
  • Используйте readonly для значений, известных во время выполнения

Типы на практике

В одной небольшой программе изучите поведение значений и ссылок, числовые суффиксы, простой вывод типов var (inference), а также const и readonly.

using System;

// Value type (struct) copies by value
public struct PointS
{
  public int X;
  public int Y;
}

// Reference type (class) copies the reference
public class PointC
{
  public int X;
  public int Y;
}

// Readonly demo class
public class Config
{
  public readonly string Name;
  public Config(string name)
  {
    Name = name; // can set here
  }
}

public class Program
{
  // Compile-time constant
  private const double Pi = 3.14159;

  public static void Main(string[] args)
  {
    // 1) Value vs reference
    PointS a = new PointS { X = 1, Y = 2 };
    PointS b = a;         // copy value
    b.X = 99;
    Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
    Console.WriteLine("Value struct b.X = " + b.X); // 99

    PointC ac = new PointC { X = 1, Y = 2 };
    PointC bc = ac;       // copy reference
    bc.X = 77;
    Console.WriteLine("Ref class ac.X = " + ac.X);  // 77 (same object)
    Console.WriteLine("Ref class bc.X = " + bc.X);  // 77

    // 2) Literals & suffixes
    float f = 3.14f;
    decimal price = 10m;
    long big = 123L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // 3) var inference (type is obvious)
    var sum = a.X + a.Y; // int
    Console.WriteLine("sum=" + sum);

    // 4) const vs readonly
    Config cfg = new Config("Demo");
    Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
  }
}

Определение типа значения

Проверка: какое утверждение лучше всего описывает тип значения?

Итоги

Итоги: типы значений копируют данные, а ссылочные типы используют общие объекты. Применяйте суффиксы для числовых литералов, используйте var, когда тип очевиден, и правильно выбирайте между const и readonly.

Часто задаваемые вопросы

Урок «Значения и ссылки; литералы; вывод типов var; const и readonly» бесплатный?

Да — полный текст урока «Значения и ссылки; литералы; вывод типов var; const и readonly» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.

Чему я научусь в уроке «Значения и ссылки; литералы; вывод типов var; const и readonly»?

Узнайте, чем типы-значения отличаются от ссылочных типов, как работают литералы и числовые суффиксы, когда использовать var и каковы роли const и readonly. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Значения и ссылки; литералы; вывод типов var; const и readonly»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Значения и ссылки; литералы; вывод типов var; const и readonly
  2. Операторы и выражения: арифметические, сравнительные, логические
  3. Суффиксы на практике; приведение и преобразование; создание объектов в C# 6
← Назад к C# Academy