int n = BtCom.BytesToRead;    
            Byte[] buf = new Byte[n];
            BtCom.Read(buf, 0, n);                  
            CPublecClass.G_ReceiveString.Clear();    
            this.Invoke((EventHandler)(delegate
            {
                CPublecClass.G_ReceiveString.Append(Encoding.ASCII.GetString(buf));
                string temp = CPublecClass.G_ReceiveString.ToString();
                BtReceiveBuff.AppendText(temp);
            }));

上面的这段小代码是串口通讯程序中数据监听线程使用委托的方法修改主线程UI的代码。功能都实现了,但是有些看不懂中间的
delegate
            {
                CPublecClass.G_ReceiveString.Append(Encoding.ASCII.GetString(buf));
                string temp = CPublecClass.G_ReceiveString.ToString();
                BtReceiveBuff.AppendText(temp);
            }
我知道这是个委托,但是很费解,这个是定义了一个匿名函数么??那么delegate后面不是应该有个()么?  看形式也不是lambda表达式啊!翻看了入门经典和高级编程都没看到过这种写法,谁给解释下啊?