Зачем нужны методы доступа?

Учу С#, наткнулся на них и не очень осознаю, зачем они нужны. MSDN дает лишь примеры использования и итак капитанские вещи.

Зачем get и set?

Какая разница между
protected int size = 3;

public int GetSize1()
{
return size;
}

и

public int GetSize2()
{
get
{
return size;
}
}

?
  • Вопрос задан
  • 2754 просмотра
Решения вопроса 1
@PokimonFromGamedev
Ведущий разработчик Kotlin
В Java принято писать геттеры и сеттеры к переменным, а сами переменные делать приватными.
Причины 3:
1) После того, как код написан и пару лет поработал, будет легко добавить функциональность в геттер или сеттер не изменяя кода, которых их использует.
2) Инкапсуляция. Например так можно разрешить читать значение переменно, но запретить изменять его.
3) Соглашение JavaBeans требует этого + есть стандарт на имена геттеров и сеттеров.

С# клон Java, поэтому 2 первый причины тут так-же действуют
Но Microsoft всегда все усложняет, поэтому в язык были добавлены свойства.
Они те же геттеры\сеттеры, только с вырви глазным синтаксисом и кучей новых ключевых слов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
@PokimonFromGamedev ты не совсем прав.

Да, первые две причины действительно действуют именно так. Но в первом случаем мы объявляем просто метод, а вот втором проперти.

Это не играет роли ровно до того момента, когда нужно производить связывание данных, а вот там это различие становится важным.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы