C# 静态方法调用和委托方法调用之间有什么区别?
有人能说出静态/对象方法调用与委托方法调用之间的区别吗?这里是我这边提供的示例C# 静态方法调用和委托方法调用之间有什么区别?,c#,C#,有人能说出静态/对象方法调用与委托方法调用之间的区别吗?这里是我这边提供的示例 class Program { private delegate void TestDeleg1(string input1); static void Main(string[] args) { // Using delege & Lambda expression TestDeleg1 testDeleg1 = input => { var t
class Program
{
private delegate void TestDeleg1(string input1);
static void Main(string[] args)
{
// Using delege & Lambda expression
TestDeleg1 testDeleg1 = input => { var test = "Hai " + input; Console.WriteLine(test); };
testDeleg1("Microsoft");
// Using simple static method invoke
TestImplementation("Microsoft");
Console.ReadLine();
}
public static void TestImplementation(string input1)
{
var test = "Hai " + input1;
Console.WriteLine(test);
}
}
因为我没有发现委托方法调用的任何实时用法
谢谢,
在你的例子中,S.Venkatesh。。它们的用法没有区别。然而,在建筑上,它们是完全不同的。委托是对方法的引用。静态方法是。。一种方法
学员可以更改他们引用的方法。。然而,一种方法就是。。方法。在您的示例中。。它们的用法没有区别。然而,在建筑上,它们是完全不同的。委托是对方法的引用。静态方法是。。一种方法
学员可以更改他们引用的方法。。然而,一种方法就是。。方法。委托的有用性还来自于这样一个事实,即委托类型可以用作方法的参数。例如,如果您声明
internal delegate bool PredicateOnInt32(int x);
然后,PredicateOnInt32
是一种引用类型,您可以将其用作方法中的参数,如
internal int GetFirstNumberWhere(PredicateOnInt32 pred)
{
foreach (int num in this.numbers)
{
if (pred(num))
return num;
}
throw new InvalidOperationException("No number satisfies the specified prediacte");
}
当然,这只是一个例子。但是想想LINQ,您就会明白,拥有一个表示特定签名和返回类型的方法(或多个方法)的类型是很有用的
委托的另一种用法是在事件中使用委托实例,在事件“发生”时,委托实例用于在场景后面保存要调用的方法集合。例如,单击按钮时。然后,不同的“订阅者”可以通过事件的add访问器将自己的方法添加到委托中。委托的有用性还来自这样一个事实,即它们是可以用作方法参数的类型。例如,如果您声明
internal delegate bool PredicateOnInt32(int x);
然后,PredicateOnInt32
是一种引用类型,您可以将其用作方法中的参数,如
internal int GetFirstNumberWhere(PredicateOnInt32 pred)
{
foreach (int num in this.numbers)
{
if (pred(num))
return num;
}
throw new InvalidOperationException("No number satisfies the specified prediacte");
}
当然,这只是一个例子。但是想想LINQ,您就会明白,拥有一个表示特定签名和返回类型的方法(或多个方法)的类型是很有用的
委托的另一种用法是在事件中使用委托实例,在事件“发生”时,委托实例用于在场景后面保存要调用的方法集合。例如,单击按钮时。然后,不同的“订阅者”可以通过事件的add访问器向委托添加他们自己的方法。如果您找到了时间,请与实际使用情况分享差异如果您找到了时间,请与实际使用情况分享差异