using System; class CInput { public delegate void UserRequest(object objSender, EventArgs e); public event UserRequest OnUserRequest; public void Run() { bool bFinish = false; string str; do { Console.WriteLine("please input string:"); str = Console.ReadLine(); if ("h" == str) { OnUserRequest(this, new EventArgs()); } else if ("exit" == str) { bFinish = true; } } while (!bFinish); } } class CUser { public static void Main() { CInput objInput = new CInput(); CUser objUser = new CUser(objInput); objInput.Run(); } CUser(CInput objInput) { //objInput.OnUserRequest += new objInput.UserRequest(ShowMessage); //注意这种写法是错误的,因为委托是静态的 objInput.OnUserRequest += new CInput.UserRequest(ShowMessage); } private void ShowMessage(object objSender, EventArgs e) { Console.WriteLine("HaHa~~~"); } }