using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var myClass = new MyClass(); //мы можем написать свой делегат, потому что нам доступен тип myClass.SetMyClass2Creater(() => new MyClass.MyClass2()); } } } internal class MyClass { private Func Creater; public void SetMyClass2Creater(Func creater) { Creater = creater; } public class MyClass2 { } }