using System;
public class Program
{
public static void Main()
var bar = new Bar(); //создаем экземпляр типа Bar
bar.foo2.Func(); //идем в поле типа Foo у экземпляра типа Bar
//bar.foo1.Func(); //Ошибка! foo1 только объявлено как поле с типом Foo, в данный момент оно пустое.
bar.foo1 = new Foo();
bar.foo1.Func(); //А теперь поле содержит экземпляр типа Foo и мы можем обратиться к методу Func()
}
public class Foo //объявляем тип Foo
public void Func()
Console.WriteLine("Hello World");
public class Bar //тип Bar с 2-мя полями типа Foo
public Foo foo1;
public Foo foo2 = new Foo();