📅  最后修改于: 2020-11-01 03:01:23             🧑  作者: Mango
委托推断使我们能够将分配方法名称直接分配给委托实例,而无需将其包装到委托对象。
当我们为委托分配方法名称时,编译器首先会推断委托的类型。在该编译器创建了一个推断类型的新对象之后,包装该方法并分配给委托。
让我们看一些例子。第一个示例不使用推断功能,而是像早期版本一样创建对象和包装方法。
using System;
namespace CSharpFeatures
{
class DelegateInference
{
delegate void MyDelegate(string msg);
static void Main(string[] args)
{
MyDelegate del = new MyDelegate(Greetings);
del("Welcome to the javatpoint");
}
public static void Greetings(string greet)
{
Console.WriteLine(greet);
}
}
}
输出:
Welcome to the javatpoint
第二个示例实现委托推理功能。并且产生与以前相同的结果。
using System;
namespace CSharpFeatures
{
class DelegateInference
{
delegate void MyDelegate(string msg);
static void Main(string[] args)
{
MyDelegate del = Greetings;
del("Welcome to the javatpoint");
}
public static void Greetings(string greet)
{
Console.WriteLine(greet);
}
}
}
输出:
Welcome to the javatpoint