泛型
来源:互联网 发布:protobuf c windows 编辑:程序博客网 时间:2024/06/03 16:26
泛型是什么
泛型是程序设计语言的一种特性,它通过参数化类型来实现在同一份代码上操作多种数据类型。利用参数化类型将类型抽象化,从而实现灵活的复用
泛型类
当定义一个类的时候,这个类的某些字段的类型可以是不确定的,这个类就叫做泛型类,这些类型可以在类构造的时候确定。
例如:
class ClassA<T> { private T a; private T b; public ClassA(T a, T b) { this.a = a; this.b = b; } public string GetSum() { return a +" "+ b; } }static void Main(string[] args) { var o1 = new ClassA<int>(12, 34); string s = o1.GetSum(); Console.WriteLine(s); var o2 = new ClassA<string>("www.", "baidu.com"); string s1 = o2.GetSum(); Console.WriteLine(s1); Console.ReadKey(); }
在主函数里我们可以看到,在构造的时候我们才确定了字段的类型。
定义泛型方法跟定义泛型类是很类似的,也是定义一个参数不确定的方法,在调用方法的时候才去确定方法的参数的类型。
例如:
class Program { public static string GetSum<T>(T a, T b) { return a + "" + b; } static void Main(string[] args) { Console.WriteLine(GetSum(12,34)); Console.WriteLine(GetSum(12.21, 32.44)); Console.WriteLine(GetSum("www.", "baidu.com")); Console.ReadKey(); } }
这段代码实现了将任意类型的字段拼接成一个字符串,我们可以发现,这段代码实现的功能和函数的重载是一样的。
假如说我们有很多类型不一样的数据需要相加,我们如果用函数重载的方法,需要每个类型都实现一段代码。但是如果使用了泛型方法,我们只需要写一个函数就可以实现所有类型所要实现的功能了。
定义泛型类和泛型方法,不确定的类型可以有多个:
public static string GetSum<T,T2,T3>(T a, T b){}Console.WriteLine(GetSum<int,int,int>(12,34));
但是我们在使用的时候也要将所有类型全部确定下来,当不确定类型的时候可以不用写,因为编译器会自动识别参数是什么类型。
阅读全文
0 0
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- VCS入门
- Java多线程并发编程一览笔录
- JavaScript对象数组排序算法
- Maven Q&A
- BTrace安装和使用
- 泛型
- java代码获取Android客户端性能数据并写入Excel表
- redis资源包
- 2).静态代理VS动态代理
- leetcode 242. Valid Anagram 颠倒字符的字符串的有效性判定 + HashMap
- Cordova Error: Could not find an installed version of Gradle
- Centos7 开机自动启动服务
- 函数式编程笔记(三)——java8实践
- 初学JS小记(一)——变量的作用域