了解委托的实现
本文关键字:实现 了解 | 更新日期: 2023-09-27 18:19:16
我一直在了解代表的优势。我已经读到它可以用作将方法作为参数传递的工具。例如,假设您有一个将比较方法作为参数调用的排序方法。因此,您可以选择所需的比较方法作为调用方。我知道并理解整个逻辑,但是当我尝试根据这些知识创建一个简单的应用程序时,它不起作用。在这里,我有 3 个类,我将传递一个方法作为参数,但我不知道我应该如何在我的第二个类中调用它。
第一:
class test1
{
public test1()
{
}
public static bool Input()
{
return true;
}
}
第二:
class test2
{
public test2()
{
}
public void OutPut(Delegate d)
{
// Error !!!
bool a = d();
Console.WriteLine(a.ToString());
}
}
最后 :
internal delegate bool Del();
class Program
{
static void Main(string[] args)
{
Del d = test1.Input;
test2 t2=new test2();
t2.OutPut(d);
Console.ReadKey();
}
}
public void OutPut(Delegate d)
这将采用不是您要查找的默认委托。出于以下原因,您明确声明了Del
:
public void OutPut(Del d)
然而,代表们是2001年。使用Func<T>
以获得更好的可读性:
public void OutPut(Func<bool> d)