C#有一个很好功能,
那就是anonymous delegate。
它省略了外在定义的函数,
而且是简单的而不需要对外暴露,
即临时定义的本地函数与参数。
比如:一个简单的线程,当它完成了任务后就自我销毁。
这做法简洁。
new Thread(delegate()
{
for(int cnt = 0; cnt< 15; cnt++)
{
//do something
}
}).Start();
以上的线程函数,完成任务后自我销毁。
另外一个就是在其他的线程里调用当前GUI的函数时的Invoke函数。
MethodInvoker mt = new MethodInvoker(delegate()
{
tbTest.Text = "Hello World!";
});
if (InvokeRequired)
Invoke(mt);
else mt();
以上的方法都把它们的功能、参数、都嵌入在一个函数中。
即简洁、不外露又能自我销毁,
达到了encapsulation的功效。
阅读(1251) | 评论(0) | 转发(0) |