У меня есть сценарий использования, с которым я никогда раньше не сталкивался.У меня есть объект, который после нажатия пользователем кнопки «Сохранить» не должен изменяться.Первоначально я создал два объекта, DraftObject
и SavedObject
.Для последнего я создал конструктор, который принимал только DraftObject и устанавливал каждое свойство как защищенный набор.
Это работает, но не кажется идеальным.Похоже, я должен иметь возможность установить свойство для моего объекта, которое контролирует возможность редактирования других полей.Какой лучший способ сделать это?Простите мой псевдокод, но вот с чем я играл:
public class MySpecialObject {
public virtual string MyProperty { get { return MyProperty; }
set {
if (State == "Locked")
{
return;
} else
{
MyProperty = MyProperty;
}
}
public virtual string State { get { return State; }
set {
if (State == "Locked")
{
return;
} else
{
State = State;
}
}
Это кажется уродливым, особенно если я должен сделать это для каждого свойства в моем классе.Должен быть лучший способ сделать это, есть идеи?