我总觉得有点任意门的意思。。。
静态方法和实例方法不同,因为静态方法不需要实例支持,所以静态方法的delegate的target参数会是null,而实例方法需要一个实例支持方法才会显现,这样对象实例方法的delegate需要管理一个对象实例所以target将赋值为对象的引用。
View Code
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace delegete_test 7 { 8 class Program 9 {10 static void Main(string[] args)11 {12 int[] values = { 1, 2, 3 };13 Util.Transform(values, Square); // Hook in Square14 foreach (int i in values)15 Console.Write(i + " "); // 1 4 916 }17 static int Square (int x) { return x * x; }18 }19 public delegate M Transformer(M arg);20 public class Util21 {22 public static void Transform (T[] values, Transformer t)23 {24 for (int i = 0; i < values.Length; i++)25 values[i] = t(values[i]);26 }27 }28 }