Свойства - полезный способ выражения функции объекта, позволяющий получить/установить обычным способом, который может использоваться API-интерфейсами, такими как привязка данных, отражение и сериализация. Поэтому для простых значений объекта, свойства удобны. Свойства не могут принимать аргументы, не должны иметь существенных побочных эффектов * и должны возвращаться быстро и повторяемо. Кроме того, нет такой вещи, как «свойство расширения» (для зеркального отображения метода расширения) и не общего свойства.
(* = отложенная загрузка и т.д. не является редкостью, однако)
метода (C# не имеет функции) лучше для выражения вещей, которые либо изменения состояния, или которые имеют ожидание принятия некоторое время и не обязательно воспроизводимо. Они не склонны работать в привязке/сериализации и т. Д.
Обратите внимание, что свойства на самом деле являются особым способом написания методов. Существует немного функциональных разница. Все дело в выражении намерений. Одна вещь, которую вы не хотите выставить, это поля (фактическая переменная экземпляра intEmployeeAge
).
Так что я бы:
public int EmployeeAge { get{return intEmployeeAge}; }
или просто (если на Employee
объекта):
public int Age { get{return intEmployeeAge}; }
Конечно ... тогда возникает вопрос "в каком блоке?" Я полагаю, что это годы?
хороший ответ .... –
/согласовано. Проще говоря, свойства предназначены для того, чтобы выставлять частные поля вне класса, чтобы не нарушать изменения, если архитектура классов была пересмотрена. – JoeBilly
@ JoeBilly - ну, вы можете сделать * бит * больше, чем без него, становясь слишком грязным. Но простые так же просто, так они говорят. –