Есть ли лучший способ ограничить доступ к свойствам Занятости и Работодателя?Условные ограничения доступа к объекту
Этот класс предназначен для сбора информации о занятости человека (потенциального клиента). EmploymentStatus может быть занятым, самозанятым, безработным, пенсионером и т. Д.
Я хочу, чтобы пользователи этого класса могли устанавливать Работодатель и Занятость, если человек действительно занят.
public class EmploymentInformation
{
private const string _EmploymentStatusNotEmployedMessage = "Employment status is not set to employed";
private string _occupation;
private Company _employer;
/// <summary>The person's employment status<example>Employed</example></summary>
public EmploymentStatus EmploymentStatus { get; set; }
/// <summary>The person's occupation<example>Web Developer</example></summary>
public string Occupation
{
get
{
if (IsEmployed)
{
return _occupation;
}
throw new ApplicationException(_EmploymentStatusNotEmployedMessage);
}
set
{
if (IsEmployed)
{
_occupation = value;
}
throw new ApplicationException(_EmploymentStatusNotEmployedMessage);
}
}
/// <summary>The person's employer</summary>
public Company Employer
{
get
{
if (IsEmployed)
{
return _employer;
}
throw new ApplicationException(_EmploymentStatusNotEmployedMessage);
}
set
{
if (IsEmployed)
{
_employer = value;
}
throw new ApplicationException(_EmploymentStatusNotEmployedMessage);
}
}
private bool IsEmployed
{
get
{
return EmploymentStatus == EmploymentStatus.Employed
|| EmploymentStatus == EmploymentStatus.SelfEmployed;
}
}
/// <summary>
/// Constructor for EmploymentInformation
/// </summary>
/// <param name="employmentStatus">The person's employment status</param>
public EmploymentInformation(EmploymentStatus employmentStatus)
{
EmploymentStatus = employmentStatus;
}
}
Почему «Род занятий» и «Работодатель» просто не возвращают «нуль»? И почему вы проверяете «IsEmployed» при настройке одного из свойств? Разве это не остановит безработного от когда-либо нанятого? – batwad 2010-12-10 15:05:02