C#中类泛型的使用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 泛型的使用
{
    class Program
    {
        //1.泛型为了实现使用同一个泛型操作不同数据类型,提高代码重用行  2.类型安全  3.提高性能  
        static void Main(string[] args)
        {
            //使用泛型操作int类型
            MyGenericArray<int, char> intarrary = new MyGenericArray<int, char>(5);
            //给泛型赋值 int
            for (int i = 0; i < 5; i++)
            {
                intarrary.Setitem(i, i * 5);//给泛型数组的每个参数赋值
            }
            //取值
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(intarrary.Getitem(i));
            }

            //使用泛型操作char类型
            MyGenericArray<char, string> chararrary = new MyGenericArray<char, string>(5);
            //给泛型赋值 char
            for (int i = 0; i < 5; i++)
            {
                chararrary.Setitem(i, (char)(i + 97));//给泛型数组的每个参数赋值
            }
            //取值
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(chararrary.Getitem(i));
            }
            Console.ReadLine();
        }
    }
    //可以给参数设置类型  可以设置T或K的限制   :class interface ...
    //定义一个泛型   实现多重泛型,多个参数
    public class MyGenericArray<T, K> where T : struct
    {
        private T[] arrar;

        //设置一个构造函数,实例化数组
        public MyGenericArray(int index)
        {
            arrar = new T[index + 1];
        }

        //获取数组内容
        public T Getitem(int index)
        {
            return arrar[index];
        }
        //给数组赋值
        public void Setitem(int index, T value)
        {
            arrar[index] = value;
        }
    }

}

posted @ 2016-07-23 01:42  微笑代表淡定.Net  阅读(183)  评论(0)    收藏  举报