首页 > Windows开发 > 详细

C#基础入门 八

时间:2018-02-14 23:12:26      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:等待   swap   rgs   强制转换   pos   只有一个   ons   下一步   base   

C#基础入门 八

泛型

  • C#中的泛型能够将类型作为参数来传递,即在创建类型时用一个特定的符号,如“T”来作为一个占位符,代替实际的类型,等待实例化时用一个实际的类型来代替。
public class Test<T>
{
    public void Swap(T a,T b)
    {
    }
}
  • 使用泛型类型可以最大限度的重用代码、保护类型的安全以及提高性能
  • 降低了强制转换或装箱操作的成本或风险、可以对泛型进行约束以访问特定数据类型的方法
  • 实例化:Test<int> test1 = new Test<int>();
  • 注意:类型参数并不是只有一个,可以有多个,类型参数可以是编译器识别的任何类型,类型参数的名字不能随便起,不能重名。
public class Test<T,U>
    {
        public void Swap(T a, U b)
        {

        }
    }
class MainClass
    {
        
        public static void Main(string[] args)
        {
            Test<int,double> test1 = new Test<int,double>();
            test1.Swap(1, 2.33);
        }
           
    }
  • public class Test<T>where T:struct代表类型参数T只能是值类型。public class Test<T>where T:class代表类型参数T只能是引用类型。

泛型类和泛型方法

  • 泛型类封装不是特定于具体数据类型的操作,泛型类最常用语集合,像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。
  • 创建泛型类的过程:从一个现有的具体类开始,逐一将每个类型更改为类型参数,直至达到通用化和可用性的最佳平衡。
class BaseNode
{
    int a;int b;
}
class BaseNodeGeneric<T>
{
    T a;T b;
}
 public class Person
    {
        public string name;
        public int age;
        public char sex;
        public string Print(string c){
            return c;
        }
    }
下一步:
public class Person<S,I,C>
    {
        public S name;
        public I age;
        public C sex;
        public S Print(S c){
            return c;
        }
    }
    class MainClass
    {
        public static void Main(string[] args)
        {
            Person<string, int, char> person = new Person<string, int, char>();
            Console.WriteLine(person.Print("zxh"));
        }           
    }

C#基础入门 八

标签:等待   swap   rgs   强制转换   pos   只有一个   ons   下一步   base   

原文:https://www.cnblogs.com/senlinmilelu/p/8449037.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号