【发布时间】:2011-11-18 00:57:37
【问题描述】:
当我执行List<void> voidList = new List<void>(); 时出现错误。
我将如何做这样的事情,它包含空白?
【问题讨论】:
-
你为什么要做这样的事情?
-
这有什么可能的应用?或者您是否想要保留返回
void的函数? -
考虑让标题更能反映实际目标。
当我执行List<void> voidList = new List<void>(); 时出现错误。
我将如何做这样的事情,它包含空白?
【问题讨论】:
void 的函数?
如果您希望保存 void 方法列表,可以使用 List<Action>。
【讨论】:
适用于单声道:
var x = new List<System.Void>();
当然,
var x = new List<Action>();
效果同样好,但更有用
【讨论】:
为什么?
您可以创建一个允许任何对象(或盒装结构)进入列表的列表。
但您基本上是在为非通用的东西使用通用列表。您可以创建最常用的基类来存储您的对象。如果没有常用的,那么 Object 就是您所追求的。
【讨论】:
private void DoStuff1() { ... }
private void DoStuff2() { ... }
var myActions = new List<Action> { DoStuff1, DoStuff2 };
然后,比如说,您可能想要循环并调用它们:
foreach (var action in myActions)
{
action();
}
【讨论】:
CS1950 The best overloaded Add method 'List<Action>.Add(Action)' for the collection initializer has some invalid arguments 和 CS1921 The best overloaded method match for 'EditUserUC.ResetName()' has wrong signature for the initializer element. The initializable Add must be an accessible instance method.