Я задаюсь вопросом, как «ленивый» экземпляр объекта из обработчика событийЛенивый инициализации в обработчике события
Если у меня есть приложение WinForms и две кнопки, например:
public partial class Form1 : Form
{
//MyClass obj = new MyClass();
MyClass obj;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
obj = new MyClass();
obj.StartWork();
}
private void button2_Click(object sender, EventArgs e)
{
obj.StopWork();
}
}
Поскольку мы выиграли «Мне нужно получить доступ к членам MyClass до того, как пользователь нажмет кнопку 1, имеет смысл только создать экземпляр класса в этом обработчике событий. Тем не менее, нажатие на вторую кнопку приведет к исключению нулевой ссылки, потому что переменная obj в этой области ничего не ссылается.
не следует отключать кнопку2 до тех пор, пока не будет нажата кнопка 1, не можете ли вы сделать это только с помощью одной кнопки? – RoughPlace
вы можете обернуть obj в proprety, создать экземпляр в методе get. –