C# - 匿名代表

use*_*677 17 c# delegates

像匿名方法一样,我宣布使用"delegate"关键字的代表是匿名代表吗?

namespace Test
{
    public delegate void MyDelegate();
    class Program
    {
        static void Main(string[] args)
        {
            DelegateTest tst = new DelegateTest();
            tst.Chaining();
            Console.ReadKey(true);
        }
    }

    class DelegateTest
    {
        public event MyDelegate del;

        public void Chaining()
        {
            del += delegate { Console.WriteLine("Hello World"); };
            del += delegate { Console.WriteLine("Good Things"); };
            del += delegate { Console.WriteLine("Wonderful World"); };
            del();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 23

没有"匿名委托"这样的东西(或者更确切地说,这不是C#规范中的公认术语,或者我所知道的任何其他与.NET相关的规范).

有一些匿名函数,包括匿名方法和lambda表达式.

你的代码显示了普通的旧匿名方法-尽管它们使用一个功能lambda表达式没有:不表达的参数在所有当你不关心他们的能力.

  • @Shekhar_Pro:是的,有很多术语使用不正确:( (2认同)

Bri*_*sen 19

示例中的委托集合指向了许多匿名方法.委托是"只是方法指针".如果它指向真实方法或匿名方法并不重要.

请参阅http://msdn.microsoft.com/en-us/library/0yw3tz5k(VS.80).aspx