У меня есть разные производные объекты, которые я хотел бы, чтобы пользователь мог использовать инициализаторы объектов с. У меня есть свойство «Инициализация», которое я хочу быть истинным, поскольку эти поля устанавливаются, а затем я хочу, чтобы свойство Initializing было установлено на false после этого.Как сказать, когда инициализатор объекта сделан
Как узнать, когда инициализатор объекта сделан, чтобы это сделать?
class Foo
{
Public Foo(string p1, string p2)
{
Initializing = true;
Property1 = p1;
Property2 = p2;
Initializing = false;
}
bool Initializing;
string _property1;
string Property1
{
get { return _property1; }
set { _property1 = value; DoSomething(); }
}
string Property2 { get; set; }
public void DoSomething()
{
if(Initializing) return; // Don't want to continue if initializing
// Do something here
}
}
В приведенном выше примере он отлично работает, если вы используете конструктор. Однако, как заставить его работать одинаково с инициализатором объекта.
EDIT: Для всех вас скептики, вот кто-то ищет именно то, что я после - http://blogs.clariusconsulting.net/kzu/how-to-make-object-initializers-more-useful/
К сожалению, это взгляд любит это невозможность хотя.
Можете ли вы опубликовать некоторый код, чтобы лучше показать, что вы хотите сделать? –
@AndrewCooper Там вы идете. –
@BrandonMoore Это действительно плохая идея. Вы буквально заставили меня содрогнуться. – asawyer