读书人

一种奇怪的写法,求解答,该如何处理

发布时间: 2012-12-31 11:57:51 作者: rapoo

一种奇怪的写法,求解答
private void m_OnOccurErr(int errCode)
{
this.SafeInvoke(() =>
{
switch (errCode)
{
case 1:
textBox4.Text = "等待超时错误!";
break;
case 2:
textBox4.Text = "获取状态错误!";
break;
default:
break;
}

});
}




public delegate void InvokeHandler();

public static void SafeInvoke(this Control control, InvokeHandler handler)
{
if (control.InvokeRequired)
{
control.Invoke(handler);
}
else
{
handler();
}
}
[解决办法]
那里奇怪啊,挺正常滴

public delegate void InvokeHandler();


public static void SafeInvoke(this Control control, InvokeHandler handler)//此处是扩展方法,对Control对象扩展一个safeInvoke方法,InvokeHandler则是委托
{
if (control.InvokeRequired)
{
control.Invoke(handler);
}
else
{
handler();
}
}


private void m_OnOccurErr(int errCode)
{
//此处调用那个扩展方法,()=> {xxx}则是匿名方法
this.SafeInvoke(() =>
{
switch (errCode)


{
case 1:
textBox4.Text = "等待超时错误!";
break;
case 2:
textBox4.Text = "获取状态错误!";
break;
default:
break;
}

});
}



如果你看不懂这些东西,那么请找本有关net新特性的书看看, 扩展方法,匿名方法都是net的新特性

读书人网 >.NET

热点推荐