【发布时间】:2012-04-07 06:38:07
【问题描述】:
我想实现一个可以在我的自定义类中查找内容的方法。它应该像通用集合一样工作 - 我将一个指针传递给一个函数,该方法将遍历它必须查看的所有内容,应用此函数,如果它返回 true,则返回找到的项目。
我想将函数指针作为参数传递,但我不想声明委托类型。
我知道我可以这样做:
delegate bool Foo(MyClass)
MyClass MyMethod(Foo x)
{...}
我知道我可以这样做:
MyClass MyMethod(Func<MyClass,bool> x)
但是我可以在不声明委托类型并且不使用诸如 Func 之类的内置东西的情况下做到这一点,它对我可以拥有的参数数量有限制(在 Func 的情况下,一个......)
【问题讨论】:
-
好吧,也许您可以使用对象数组来实现功能?
-
在 .NET 3.5 中,
Func可以有多个参数。 msdn.microsoft.com/en-us/library/bb549151(v=vs.90).aspx 见:i.imgur.com/yQIaf.png -
谢谢。不过,有没有办法在方法声明中声明委托的类型,还是我必须使用 Func?
-
您可以通过使用反射来使用 string 来实现。但这会很慢,容易崩溃并且难以阅读。代表没有的问题。