Поля, автоматически реализуемые свойства, инициализаторы объектов
Определяйте поля и автоматически реализуемые свойства, а также создавайте объекты с помощью лаконичных инициализаторов объектов.
«Поля, автоматически реализуемые свойства, инициализаторы объектов» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.
Обзор основ классов
Цель: Создавать простые классы.
- Fields хранят исходные данные
- Автоматические свойства обеспечивают удобный доступ к данным
- Инициализаторы объектов задают значения при создании
Fields в классе
Fields — это переменные внутри класса. Для общедоступных данных properties безопаснее.
using System;
// Fields store raw data inside a class
public class Player
{
public string name; // field (usually prefer properties for public APIs)
public int level;
}
public class Program
{
public static void Main(string[] args)
{
Player p = new Player();
p.name = "Ada";
p.level = 1;
Console.WriteLine("Player " + p.name + " level " + p.level);
}
}
Автоматические свойства
Автоматические свойства предоставляют доступ к данным через get/set без написания field. Можно задать простые значения по умолчанию.
using System;
// Auto-properties generate a hidden backing field
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; } = 0; // auto-property initializer (C# 6)
}
public class Program
{
public static void Main(string[] args)
{
Book b = new Book();
b.Title = "Clean Code";
b.Author = "Robert C. Martin";
b.Pages = 464;
Console.WriteLine(b.Title + " by " + b.Author + " (" + b.Pages + " pages)");
}
}
Инициализаторы объектов
Инициализаторы объектов задают properties во время создания, сохраняя код коротким и понятным.
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
// Object initializer calls set-accessors after construction
Person p = new Person { Name = "Alan", Age = 30 };
Console.WriteLine(p.Name + " (" + p.Age + ")");
}
}
Fields и properties
Рекомендация:
- Используйте закрытые fields для внутреннего хранения данных.
- Предоставляйте общедоступные properties, чтобы позже добавлять проверку без нарушения работы вызывающего кода.
- Используйте понятные и простые имена.
Fields и properties вместе
Объединяйте закрытое поле со свойством, чтобы контролировать записи (простые инварианты).
using System;
// Private fields + public properties pattern
public class Product
{
private int _stock; // field (internal storage)
public string Name { get; set; } // property (public API)
public int Stock // property with simple guard
{
get { return _stock; }
set
{
if (value < 0) value = 0; // simple safety for beginners
_stock = value;
}
}
}
public class Program
{
public static void Main(string[] args)
{
Product p = new Product { Name = "Pen", Stock = 5 };
p.Stock = -3; // setter clamps to 0
Console.WriteLine(p.Name + " stock = " + p.Stock);
}
}
Концепция автоматического свойства
Итоги
Итоги: Определяйте данные с помощью fields и предоставляйте к ним доступ через автоматические свойства. Используйте инициализаторы объектов, чтобы задавать значения при создании.
Часто задаваемые вопросы
Урок «Поля, автоматически реализуемые свойства, инициализаторы объектов» бесплатный?
Да — полный текст урока «Поля, автоматически реализуемые свойства, инициализаторы объектов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.
Чему я научусь в уроке «Поля, автоматически реализуемые свойства, инициализаторы объектов»?
Определяйте поля и автоматически реализуемые свойства, а также создавайте объекты с помощью лаконичных инициализаторов объектов. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Поля, автоматически реализуемые свойства, инициализаторы объектов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Поля, автоматически реализуемые свойства, инициализаторы объектов
- Конструкторы и статические члены
- Инкапсуляция и инварианты