C#编程之泛型方法

C#编程之泛型方法在介绍泛型之前,我们先抛出这样一个问题:代码实现数值类型相加以及实行string类型字符拼接稍微有点基础的同学就会觉得这很easy,代码提笔就来(如下)publicintAddInt(inta,intb){intIntResult=a+breturnIntResult;}publicstringAddString(stringa,st…

大家好,欢迎来到IT知识分享网。

  在介绍泛型之前,我们先抛出这样一个问题:代码实现数值类型相加以及实行string类型字符拼接

  稍微有点基础的同学就会觉得这很easy,代码提笔就来(如下)

public int AddInt(int a,int b)
{
    int IntResult=a+b
    return IntResult;
}

public string AddString(string a,string b)
{
    string StrResult=a+b
    return IntResult;
}

但是,仔细一分析,哈。。。这两个方法除了数据类型不一样之外,其余的都一样。有些同学小脑筋一转,请出了他们两者的“爸爸”object。(PS:这也是其他一切数据类型的爸爸)请看代码

public object Add(dynamic a, dynamic b)
{           
     object oResult = a + b;
     return oResult;
}

至于为什么可以这样写,分为两点:①任何父类在的地方都可以用子类来代替;②Object是一切类型的父类

好了,大家来找找茬。对于这个方法与前两者有何不一样的,对喽,有眼尖的同学一眼就看出来了

                                      C#编程之泛型方法

这里补充点小知识,dynamic经过再编译之后也是个object,但这个老哥可以避开编译器的检查。但是,object存在装箱拆箱的问题(想了解的,这个网址:https://www.cnblogs.com/schangxiang/p/11229469.html),拖慢了程序运行的速度。

那么有没有一种方法,可以既不影响性能,也能实现功能。这时咱们的主角:泛型。缓缓走来 ,放着我来,且看代码:

public T AddIntOrString<T>(T a,T b)
{
      dynamic first = a;
      dynamic second = b;
      var tResult = first + second;
      return result;
}

       这里的T可以用任意的东西替代,随你,它只是一个占位置的东西而已,真正的人没有来,你不知是男是女,是高是低。最后来小结下            

       泛型,是C#2.0推出的新语法,是由框架升级提供的便捷功能,并不是所谓的语法糖。可以将其看作一切数据类型的集合,使用它可以减少工作量,提高代码的重用率。这里为了讲解泛型,只是简单的介绍了泛型方法,其实泛型不只有泛型方法,还有泛型类,泛型接口,泛型委托等一系列东西。

 

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11633.html

(0)
上一篇 2024-03-21 07:15
下一篇 2024-03-21 17:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信