Помогите найти ошибку!

Помогите найти ошибку пожалуйста!

namespace Main
{
    using System;
public class Program
{
    public static void Main()
    {
        MyClass mcl = new MyClass();
        mcl.func.Invoke();
        Console.ReadKey();
    }

}
public class MyClass
{
    public Func<Func<string>> func;
    public Func<string> func2;

    string Method1()
    {
        return "Hello ";
    }
    string Method2()
    {
        return "World";
    }

    public MyClass()
    {
        func2  = Method1;
        func2  = Method2;

        Func<Func<string>> func = () => {
            foreach (var item in func2.GetInvocationList())
            {
                Console.Write(((Func<string

Чувак, ты в конструкторе MyClass создаёшь новый экземпляр класса, и твой func по сути остаётся пустым.

А вообще я немного переписал этот код:

namespace Main
{
    using System;
public class Program
{
    public static void Main()
    {
        MyClass mcl = new MyClass();
        mcl.func.Invoke();
        Console.ReadKey();
    }

}
public class MyClass
{
    public Action func;
    public Func<string> func2;

    string Method1()
    {
        return "Hello ";
    }
    string Method2()
    {
        return "World";
    }

    public MyClass()
    {
        func2  = Method1;
        func2  = Method2;

        func = () =>
        {
            foreach (var item in func2.GetInvocationList())
            {
                Console.Write(item.DynamicInvoke());
            }
        };
    }
}

}

Мне кажется, так проще