Главная страница » C# » 31. Свойства
Свойства (Properties) в C# позволяют безопасно управлять доступом к данным объекта, скрывая реализацию и предоставляя контролируемый доступ к переменным. Они похожи на методы, но используются как обычные переменные.
📌 Пример свойства:
				
					class Person
{
    public string Name { get; set; } // Автоматическое свойство
}
var person = new Person();
person.Name = "Алексей";   // Установка значения
Console.WriteLine(person.Name); // Алексей
 
				
			
		🔹 Name ведёт себя как поле, но внутри использует специальные методы (геттер и сеттер).
Свойства содержат два метода:
get – возвращает значение.set – задаёт новое значение.📌 Пример свойства с логикой внутри set:
				
					class Person
{
    private int age;
    public int Age
    {
        get { return age; }
        set
        {
            if (value > 0) age = value;  // Проверка перед установкой
        }
    }
}
var person = new Person();
person.Age = 25;  
Console.WriteLine(person.Age); // 25
person.Age = -5;  
Console.WriteLine(person.Age); // 25 (значение не изменилось)
 
				
			
		🔹 Геттер возвращает age, а сеттер проверяет, что возраст неотрицательный.
Если не нужно добавлять логику в get или set, можно использовать автоматическое свойство.
📌 Пример:
				
					class Car
{
    public string Model { get; set; }  // Автоматическое свойство
}
 
				
			
		🔹 Компилятор автоматически создаст приватное поле для хранения данных.
get)Если свойство только для чтения, то можно убрать set.
📌 Пример:
				
					class Circle
{
    public double Radius { get; }  // Только для чтения
    public Circle(double radius)
    {
        Radius = radius;  // Можно установить только в конструкторе
    }
}
 
				
			
		🔹 Значение Radius можно установить только при создании объекта.
set)Иногда нужно, чтобы свойство можно было только устанавливать, но не читать.
📌 Пример:
				
					class Secret
{
    private string _password;
    public string Password
    {
        set { _password = value; }  // Можно установить, но нельзя прочитать
    }
}
 
				
			
		🔹 Можно задать пароль, но нельзя его получить.
Можно задать разные уровни доступа для get и set.
📌 Пример:
				
					class BankAccount
{
    public string Owner { get; private set; }  // Только чтение вне класса
    public decimal Balance { get; private set; } // Только внутри класса
    public BankAccount(string owner, decimal balance)
    {
        Owner = owner;
        Balance = balance;
    }
    public void Deposit(decimal amount)
    {
        if (amount > 0) Balance += amount;
    }
}
 
				
			
		🔹 Owner и Balance можно читать, но изменять только внутри класса.
Свойство может вычислять значение вместо хранения.
📌 Пример:
				
					class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
    public double Area => Width * Height;  // Вычисляемое свойство
}
 
				
			
		🔹 При каждом обращении Area пересчитывается.
Статические свойства принадлежат классу, а не объекту.
📌 Пример:
				
					class Configuration
{
    public static string AppName { get; set; } = "My App";
}
Console.WriteLine(Configuration.AppName); // My App
 
				
			
		🔹 Можно обращаться без создания объекта.
✅ Свойства позволяют управлять доступом к данным объекта.
✅ Полные свойства (get/set) дают гибкость и возможность контроля.
✅ Автоматические свойства упрощают код, когда логика не нужна.
✅ Модификаторы доступа (private, readonly, static) помогают защищать данные.
✅ Вычисляемые свойства удобны, когда значение можно рассчитать.
🚀 Теперь вы знаете, как работать со свойствами в C#!
Student, в котором есть:Name (автоматическое).Grade (оценка), которое можно установить только от 1 до 10.IsExcellent, которое возвращает true, если оценка больше 8.📌 Пример решения:
				
					using System;
class Student
{
    public string Name { get; set; }
    private int _grade;
    public int Grade
    {
        get { return _grade; }
        set { if (value >= 1 && value <= 10) _grade = value; }
    }
    public bool IsExcellent => Grade > 8;
}
class Program
{
    static void Main()
    {
        Student student = new Student { Name = "Анна", Grade = 9 };
        Console.WriteLine($"{student.Name} – Отличник? {student.IsExcellent}"); // Анна – Отличник? True
    }
}
 
				
			
		
				
					string message = "Hello, world!";
char quote = '\"';
string path = @"C:\Users\Admin";
 
				
			
		Создайте программу, которая выведет:
				
					Путь к файлу: "C:\Program Files\App"
Пример многострочного текста:
Это первая строка
    Это вторая строка
 
				
			
		
				
					using System;
class Program
{
    static void Main()
    {
        string path = @"C:\Program Files\App";
        string multiLine = """
        Пример многострочного текста:
        Это первая строка
            Это вторая строка
        """;
        Console.WriteLine($"Путь к файлу: \"{path}\"");
        Console.WriteLine(multiLine);
    }
}
 
				
			
		Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92 
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.
 
													Язык сайта: