/// <summary> /// 首先这里有一个给整型数组进行冒泡排序的方法, /// 那么在后面的发展中,有需要对另一种类型的数组进行冒泡排序,规则跟下面的方法一样。只是数据类型不一致。 /// 那么这时候可以使用到泛型方法,把类型参数化。把方法的签名抽象出来,(方法的前面主要是方法名和参数列表) /// </summary> /// <param name="arr"></param> public void BubbleSort(int[] arr) { //这里gog当做animal去返回,发生了协变 子类向父类转换。 GetSome <Gog> SS = new GetSome <Gog>(() => { return(new Gog()); }); GetSome <Animal> gog = SS; //这里的类型参数只用于输入,发生逆变, 父类向子类转换。 GetOne <Animal> s1 = new GetOne <Animal>(() => { return(""); }); GetOne <Gog> s2 = s1; string s = ""; int length = arr.Length; for (int i = 0; i < length - 1; i++) { for (int j = 0; j < length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }
/// <summary> /// Delegate Example /// </summary> public static void ExampleCode3() { GetSome <int> pointer = delegate(int one, int two) { string name = "some name"; name = name.ToUpper(); return(one + two); }; Console.WriteLine("{0} + {1} = {2}", 10, 20, pointer(10, 20)); }