Exemple #1
0
        /// <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;
                    }
                }
            }
        }
Exemple #2
0
        /// <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));
        }