c# property vs method

программирование C#

Как сделать правильный выбор в пользу метода или свойства?!
Спасибо!!!

Примечание:
Пример
Допустим у меня есть объект Человек,у него есть имя,фамилия и отчество.
При задании инициалов,мне нужно проверить их длину:И>=20,Ф>=20,О<=30.
Где лучше делать проверку??

Примечание:
Допустим вот такое свойство:
public string FirstName
{
get { return _firstname; }
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentNullException("Enter first name");
if (value.Length > 20)
throw new ArgumentException("First name is too long");
if (value != _firstname) _firstname = value;
}
}
Или будет правильнее создать метод getFirstname(string fname),например?!
Спасибо!
Ответы:
Если вы хотите проверить корректность данных, записываемых в поле класса, то такую проверку лучше делать в свойстве. В других же языках вместо свойств использую методы типа setValue() и getValue() (если поле называется value). Соответственно, в C# если вам захочется использовать методы setValue() и getValue(), то их стоит всегда заменять на свойства и все проверки, которые вы делали бы в этих методах, делать в свойствах.
> Или будет правильнее создать метод getFirstname(string fname),например?
В языках где присутствуют свойства лучше не использовать геттеры и сеттеры, а пользоваться свойствами.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.