Я использую свойства, позволяющие добавить одну строку name
в класс Details
. Я хочу, чтобы свойство принимало только строку, если ее можно разделить на две части.Проверка неправильного ввода внутренних свойств в C#
Две части будут firstName
и LastName
. Однако, если результирующий раскол имеет 1,0 или более 2 строк в массиве, тогда вход должен считаться недействительным, и я хочу бросить ошибку на любой код, называемый свойством в первую очередь.
Можно ли обрабатывать ошибки при таких свойствах?
Если не то, что из перечисленного является предпочтительным способом, чтобы получить данные в класс во время проверки правильности:
- Используйте метод внутри класса
Details
для обработки входных ошибок, делают этот методboolean
, - Продолжайте использовать свойства, но проверите проверку ошибок с помощью кода, который вызывает свойство. Мне это не нравится, потому что я хочу, чтобы весь код проверки ошибок был автономным в классе
Details
.
.
class Details
{
private string firstName, lastName;
public string Name
{
// name
get { return firstName + " " + lastName; }
set
{
string name = value;
string[] nameArray = name.Split(' ');
firstName = nameArray[0];
lastName = nameArray[1];
}
}
}
EDIT: Я в основном заинтересован в том, что из трех опций concidered лучшего pratice: проверка
- Ошибки в свойствах. проверка
- Ошибки вне класса в другом классе, а затем просто добавить проверенные входы
Details
- Используйте метод
boolean
внутриDetails
для проверки входов.
вы можете проверить длину массива внутри свойства. –
@RajasekarGunasekaran, это хорошее кодирование? Из приведенных ниже ответов видно, что не рекомендуется проверять внутри свойства. – Joseph
@Joseph Нет ничего плохого в проверке ввода внутри свойства setter. Фактически, это очень распространенная, даже стандартная практика. –