Здравствуйте, kpumuk, Вы писали:
K>>Создавать сразу объект A не имеет смысла, он ведь может и не понадобиться. Вот пример:
Спасибо большое! Я разобрался... Вот только теперь хотел бы подтвердить свои мысли

Из функции Main() я вызываю несколько раз метод longPathButtonClick(), это как раз приводит к тому, что должен создаться объект класса А. В случае с new будет выделенна память несколько раз, а если использовать свойство, то объект создастся только один раз... Если все так, то использование прайват в определении свойства ясно... Прошу меня извинить, если я что-то недопонял и написал не так...
class A
{
public A() // Дефолтный конструктор
{
Console.WriteLine("Default constructor call for class A");
}
// Сложные вычисления
}
class B
{
public B() // Дефолтный конструктор
{
Console.WriteLine("Default constructor call for class B");
}
private A _a;
public A A
{
get
{
if (_a == null) _a = new A();
return _a;
}
}
public void longPathButtonClick()
{
Console.WriteLine("The Button was clicked!!!");
// _a = new A(); // В этом случае создается много копий одного объекта...
// _a = A; // В этом случае объект создается только один раз...
}
}
class Program
{
static void Main(string[] args)
{
B CB = new B();
CB.longPathButtonClick();
CB.longPathButtonClick();
CB.longPathButtonClick();
CB.longPathButtonClick();
}
}