0
点赞
收藏
分享

微信扫一扫

十二、享元模式

鱼满舱 2024-08-07 阅读 29

泛型

泛型方法

        static void Main(string[] args)
        {
            T Add<T>(T num1, T num2)
            {
            dynamic numTmp1 = num1;
            dynamic numTmp2 = num2;
            return numTmp1 + numTmp2;
            }

            int result = Add(5, 8);
            //string result = Add("5", "8");
            //string result = Add("Rain", "Bow");

            Console.WriteLine("result = " + result);
            Console.ReadKey();
        }

泛型类

    class MyArray<T>
    {
        T[] arrData = new T[10];
        public void Set(T value, int index)
        {
            arrData[index] = value;
        }

        public T GetDataByIndex(int index)
        {
            return arrData[index];
        }
    }
        static void Main(string[] args)
        {
            MyArray<int> myArr = new MyArray<int>();
            myArr.Set(5, 0);
            myArr.Set(6, 1);
            myArr.Set(7, 2);
            myArr.Set(8, 3);
            myArr.Set(9, 4);

            int value = myArr.GetDataByIndex(3);
            Console.WriteLine(value);

            MyArray<string> myArrStr = new MyArray<string>();
            myArrStr.Set("张三", 0);
            myArrStr.Set("李四", 1);
            myArrStr.Set("王五", 2);
            myArrStr.Set("赵六", 3);
            myArrStr.Set("钱七", 4);

            string valueStr = myArrStr.GetDataByIndex(3);
            Console.WriteLine(valueStr);
        }


 泛型约束

public class 泛型名<T> where T : 类名 // T 必须是引用类型
{
    // 类定义
}

public class 泛型名<T> where T : 结构体名// T 必须是值类型
{
    // 类定义
}

方法

public T 泛型名<T>() where T : 类名    // 使用where约束T的类型
{
    // 方法语句
    return null;    //return 为空时直接输出
    return 数据名 as T;    //return 不为空时,需要强转为T类型
}

举报

相关推荐

0 条评论