Что является альтернативой вызову функции в конструкторе в C#?
Я вызываю функцию в моем конструкторе в моем классе C#. Конструктор вызывается во время разработки, поэтому вместо вызова моей функции я подумал добавить событие OnLoad и вместо этого вызвать мою функцию. Однако, поскольку я новичок в C#, я не уверен, как это сделать, поскольку я прочитал, что OnLoad предназначен для форм, и я не вижу нескольких работающих решений (загрузка не распознается). Как я могу добиться загрузки функции, не вызывая ее в конструкторе?
1 ответ
Ниже приведен пример реализации шаблона фабрики для создания экземпляра рассматриваемого класса. Преимущество здесь в том, что SpecialMethod
вызывается вашим "API", а не потребителем вашего "API". обеспечение SpecialMethod
всегда называется; изменить поведение в соответствии с вашим сценарием...
/* consumer (on your page load) */
var instance = SomeClass.GetInstance();
public class SomeClass
{
/* prevent consumers from directly instantiating `SomeClass` */
private SomeClass() {}
public static SomeClass GetInstance()
{
var instance = new SomeClass();
instance.SpecialMethod();
return instance;
};
private void SpecialMethod()
{
/* Special stufff ... */
}
}