扩展方法(摘抄):
1、扩展方法是一个补丁的概念,在一个进程(一个程序集)的范围内,给某个类型临时加上方法。所以扩展方法不能写在嵌套类,应该在程序集的全局区,这个程序集的顶级类中。而且要求有二(在static类中,是一个static方法),this是它和一般的方法的区别符。
2、扩展方法不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。
public static class GlobalFunctionEx
{
public static void InvokeEx(this Control control ,Action action)
{
try
{
if (!control.IsDisposed)
{
if (control.InvokeRequired)
control.Invoke(action);
else
action.Invoke();
}
else
Thread.CurrentThread.Abort();
}
catch (Exception)
{
}
}
public static void BeginInvokeEx(this Control control, Action action)
{
try
{
if (!control.IsDisposed)
{
if (control.InvokeRequired)
control.BeginInvoke(action);
else
action.Invoke();
}
else
Thread.CurrentThread.Abort();
}
catch (Exception)
{
}
}
}
注:有两种调用方式,如下
第一种,推荐
Control.InvokeEx(()=>
{
//操作
});
第二种
GlobalFunctionEx.Invoke(Control,action);
public void action()
{
//操作
}