在提出事件时,我无法真正理解这个null测试的东西是什么.
说我有这个代码.
class ballClass
{
public event EventHandler BallInPlay;
public void onHit()
{
if (BallInPlay != null)
{
BallInPlay(this, new EventArgs());
}
else
{
MessageBox.Show("null!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
而且我想在触发onHit()方法时引发BallInPlay.
现在它告诉我BallInPlay是null.我应该怎样或者用什么"填充"它才能起作用?
谢谢!
我正在尝试学习在C#中提升和处理事件.
这是我的简单例子:
/////////////// creating a new BALL object ///
ballClass ball = new ballClass();
void button1_Click(object sender, EventArgs e)
{
// this should make the BALL object raise an event
ball.onHit();
label1.Text = "EVENT SEND";
}
// when event is fired, label text should change
void BallInPlayEvent(object sender, EventArgs e)
{
label2.Text = "EVENT FOUND!";
}
Run Code Online (Sandbox Code Playgroud)
和球类:
class ballClass
{
public event EventHandler BallInPlay;
public void onHit()
{
this.BallInPlay ///// ??? how should i raise this event?
}
}
Run Code Online (Sandbox Code Playgroud)
在电话中我无法理解, …
例如,我有一个图片框列表,一旦光标悬停在它们上面就会引发事件.然而,我不仅需要以某种方式提升此事件,还要传递"i"变量,以便我知道哪个图片框上有光标.
for (int i = 0; i < 25; i++)
{
....
pbList.Add(new PictureBox());
pbList[i].MouseHover += new System.EventHandler(this.beeHideInfo);
//// need to pass "i" here
}
Run Code Online (Sandbox Code Playgroud)
和
private void beeShowInfo(object sender, EventArgs e)
{
lb_beeInfo.Text = "You are hovering over: "+beeList[i].name;
/// need to get this "i"
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?