我发现自己做了很多以下事情,我不知道是否有任何副作用,但在 WinForms C# 应用程序中考虑以下内容。(请原谅我在输入代码时出现的任何错误,而不是复制粘贴任何内容)
int a = 1;
int b = 2;
int c = 3;
this.Invoke((MethodInvoker)delegate()
{
int lol = a + b + c;
});
这有什么问题吗?还是我应该走很长的路>_<
int a = 1;
int b = 2;
int c = 3;
TrippleIntDelegate ffs = new TrippleIntDelegate(delegate(int a_, int b_, int c_)
{
int lol = a_ + b_ + c_;
});
this.Invoke(ffs);
不同之处在于参数是传入而不是使用局部变量,这是一些非常甜蜜的 .net 魔术。我想我曾经看过反射器,它创建了一个全新的类来保存这些变量。
那么这有关系吗?我可以偷懒吗?
编辑:注意,显然不关心返回值。否则我将不得不使用我自己的类型化委托,尽管我仍然可以使用局部变量而不传递它!