c# --- 泛型解决输入和输出类型不确定问题

4 篇文章 0 订阅

一、背景

有这样一个需求:一个方法,他的返回值类型不确定,方法参数的类型不做要求。

二、思考

返回值类型不确定,从继承的角度,所以类都是object的子类,返回object即可。但是这种方法是类型不安全的,需要进行类型转换。
我们可以使用泛型解决这个问题。我理解的泛型就是一类类型,或者相当于一个类型集合。

三、具体方案


        public static T GetValueBy<T>(T input)
        {
            return input;
        }
        public static object  GetValue(object  input )
        {
            return input;
        }
        static void Main(string[] args)
        {
            int a = (int)GetValue(1);
            bool b = (bool)GetValue(true);
            string c = (string)GetValue("string");


            int d = GetValueBy(1);
            bool e = GetValueBy(true);
            string f = GetValueBy("string");

            Console.WriteLine($"a:{a.ToString()}");
            Console.WriteLine($"b:{b.ToString()}");
            Console.WriteLine($"c:{c.ToString()}");
            Console.WriteLine($"d:{d.ToString()}");
            Console.WriteLine($"e:{e.ToString()}");
            Console.WriteLine($"f:{f.ToString()}");

            Console.ReadKey();
        }

四、总结

1.泛型可以用来解决不确定类型的问题。

2.泛型可以避免拆箱和装箱的过程。

3.泛型强制VS进行类型检查,避免运行时类型出错。

五、github地址

代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值