错误的地方说是在粗体位置 就是说上下不对应 我郁闷那。。我是按照视频上做下来的 但是视频上可以显示 为什么我的不行呢 新手求解!!
{
class MyEventArgs : EventArgs
{
private int _light;
public MyEventArgs(int light)
{
_light = light;
}
public int Light
{
get { return _light; }
}
}
class LightSender
{
public delegate void LightEventHander(object sent, MyEventArgs e);
public event LightEventHander LightEvent;
public event LightEventHander CloseEvent;
public void OnLightEvet()
{
LightEventHander hander = LightEvent;
if (hander!=null)
{
bool judge = true;
while (judge)
{
Console.WriteLine("请输入当前亮度");
int light = Convert.ToInt32(Console.ReadLine());
MyEventArgs e = new MyEventArgs(light);
if (e.Light < 30)
{
LightEvent(this, e);
}
if (e.Light == 30)
{
CloseEvent(this, e);
}
}
}
}
}
class Program
{
public Program()
{
LightSender ls = new LightSender();
ls.LightEvent+=new LightSender.LightEventHander(ls_LightEvent);
ls.CloseEvent+=new LightSender.LightEventHander(ls_CloseEvent);
ls.OnLightEvet();
}
static void Main(string[] args)
{
Program p = new Program();
}
static void ls_CloseEevent(object sender, MyEventArgs e)
{
Console.WriteLine("CloseEvent事件相应:天明——关灯");
}
static void ls_LightEevent(object sender, MyEventArgs e)
{
Console.WriteLine("LightEvent事件相应:天黑——开灯");
}
}
}
{
class MyEventArgs : EventArgs
{
private int _light;
public MyEventArgs(int light)
{
_light = light;
}
public int Light
{
get { return _light; }
}
}
class LightSender
{
public delegate void LightEventHander(object sent, MyEventArgs e);
public event LightEventHander LightEvent;
public event LightEventHander CloseEvent;
public void OnLightEvet()
{
LightEventHander hander = LightEvent;
if (hander!=null)
{
bool judge = true;
while (judge)
{
Console.WriteLine("请输入当前亮度");
int light = Convert.ToInt32(Console.ReadLine());
MyEventArgs e = new MyEventArgs(light);
if (e.Light < 30)
{
LightEvent(this, e);
}
if (e.Light == 30)
{
CloseEvent(this, e);
}
}
}
}
}
class Program
{
public Program()
{
LightSender ls = new LightSender();
ls.LightEvent+=new LightSender.LightEventHander(ls_LightEvent);
ls.CloseEvent+=new LightSender.LightEventHander(ls_CloseEvent);
ls.OnLightEvet();
}
static void Main(string[] args)
{
Program p = new Program();
}
static void ls_CloseEevent(object sender, MyEventArgs e)
{
Console.WriteLine("CloseEvent事件相应:天明——关灯");
}
static void ls_LightEevent(object sender, MyEventArgs e)
{
Console.WriteLine("LightEvent事件相应:天黑——开灯");
}
}
}
//你自己对比下你自己注册的方法名字
ls.LightEvent+=new LightSender.LightEventHander(ls_LightEvent);
ls.CloseEvent+=new LightSender.LightEventHander(ls_CloseEvent);static void ls_CloseEevent(object sender, MyEventArgs e)
{
Console.WriteLine("CloseEvent事件相应:天明——关灯");
}
static void ls_LightEevent(object sender, MyEventArgs e)
{
Console.WriteLine("LightEvent事件相应:天黑——开灯");
}
ls.CloseEvent+=new LightSender.LightEventHander(ls_CloseEvent);static void ls_CloseEevent(object sender, MyEventArgs e)另一个也是一样!