Что является альтернативой вызову функции в конструкторе в 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 ... */
    }
}
Другие вопросы по тегам