using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;
namespace DeletegateT
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MyClass
_MyClass._MyDelegate = new MyDelegate
MessageBox.Show(_MyClass.GetValues("Jimmy's Book","Jimmy"));//此时编译器已经能确定参数的类型为String,进而通过委托调用泛型方法DemoMethod
_MyClass._MyEvent += new MyEvent
_MyClass.InvokeEvent("Jimmy", "China");//激发事件
}
//定义有返回值的委托
public delegate string MyDelegate
//定义事件委托。
public delegate void MyEvent
public class MyClass
{
//声明委托
public MyDelegate
//声明事件委托
public event MyEvent
public string GetValues(V title, F author)
{
//调用委托
return _MyDelegate(title, author);
}
public MyClass()
{
}
public void InvokeEvent(V name, F address)
{
if (_MyEvent != null)
{
//调用委托
_MyEvent(name, address);
}
}
}
public string DemoMethod
{
return title.ToString() + " ,Author:" + author;
}
private void DemoEvent
{
MessageBox.Show(name + " come from " + address);
}
}}



