Найти в Дзене
Young programmer

Чем свойство отличается от поля ? Для начинающих на примере C#

Тем же чем продавец товара отличается от товара. Поля и переменные Поле - это переменная, которая хранит данные внутри объекта класса. Она представляет собой конкретное значение, которое может быть прочитано или изменено из кода. Поля обычно объявляются с модификатором доступа private и используются для хранения данных, которые используются только внутри класса. Переменная (variable) - это именованная область памяти в классе, которая используется для хранения значения определенного типа данных. Переменные могут быть объявлены внутри класса для временного хранения значений, которые могут изменяться в процессе выполнения программы. Обычно переменные объявляются как поля (fields) класса. В этом примере _name и Age объявлены как поля класса Person. Свойства Свойство (property) - это метод, который позволяет получать или устанавливать значение поля объекта класса. Оно является абстракцией над полем и предоставляет удобный интерфейс для работы с данными объекта. Свойства могут иметь различн
Оглавление

Тем же чем продавец товара отличается от товара.

Поля и переменные

Поле - это переменная, которая хранит данные внутри объекта класса. Она представляет собой конкретное значение, которое может быть прочитано или изменено из кода. Поля обычно объявляются с модификатором доступа private и используются для хранения данных, которые используются только внутри класса.

Переменная (variable) - это именованная область памяти в классе, которая используется для хранения значения определенного типа данных. Переменные могут быть объявлены внутри класса для временного хранения значений, которые могут изменяться в процессе выполнения программы. Обычно переменные объявляются как поля (fields) класса.

В этом примере _name и Age объявлены как поля класса Person.

Пример поля в классе C#
Пример поля в классе C#

Свойства

Свойство (property) - это метод, который позволяет получать или устанавливать значение поля объекта класса. Оно является абстракцией над полем и предоставляет удобный интерфейс для работы с данными объекта. Свойства могут иметь различные уровни доступа, их можно использовать для проверки и валидации данных, переданных пользователем, или для автоматического обновления других свойств или полей при изменении значений.

В этом примере _name объявлено как поле класса Person, а Name - как свойство. Свойство Name имеет геттер и сеттер, которые позволяют получить или установить значение поля _name. Свойство может выполнять любую логику, необходимую для обработки значений, полученных или установленных пользователем.

Пример свойства в классе C#
Пример свойства в классе C#

Примеры

В этом примере переменные Name, Age и IsMarried объявлены как поля класса Person, которые будут хранить соответствующие значения для каждого экземпляра класса.

Пример переменной (поля) в классе C#
Пример переменной (поля) в классе C#

В этом примере Name и IsMarried объявлены как свойства класса Person. Свойство Name имеет приватное поле _name, которое хранит значение имени человека, и геттер и сеттер, которые получают и устанавливают это значение. Сеттер в этом случае конвертирует имя в верхний регистр перед сохранением в поле. Свойство IsMarried также имеет приватное поле _isMarried, которое хранит значение о том, состоит ли человек в браке, и геттер и сеттер, которые получают и устанавливают это значение. Свойство Age объявлено как автоматически реализуемое свойство, оно имеет встроенное приватное поле и геттер и сеттер, которые работают с этим полем.

Пример свойства в классе C#
Пример свойства в классе C#

Вывод

Таким образом, основное различие между свойством и полем заключается в том, что свойство предоставляет абстракцию над полем, позволяя контролировать доступ к данным и выполнить дополнительную логику, когда значение свойства изменяется. Поле, с другой стороны, представляет собой простое хранилище данных, доступное для чтения и записи из кода