3.C#中泛型类的进一步探讨
阅读目录
一:多重泛型
class不仅可以有T,还可以有K,实例化的时候传多个数据类型的类型,C#集合类型中的Dictionary就是多重泛型
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace MultipleGeneric 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 MyGenericArray<int, char> intArray = new MyGenericArray<int, char>(5); 14 for (int i = 0; i < 5; i++) 15 { 16 intArray.SetItem(i, i * 5); 17 } 18 for (int i = 0; i < 5; i++) 19 { 20 Console.WriteLine(intArray.GetItem(i) + ""); 21 } 22 MyGenericArray<char, string> charArray = new MyGenericArray<char, string>(5); 23 24 MyGenericArray<string, string> stringArray = new MyGenericArray<string, string>(5); 25 for (int i = 0; i < 5; i++) 26 { 27 charArray.SetItem(i, (char)(i + 97)); 28 } 29 for (int i = 0; i < 5; i++) 30 { 31 Console.WriteLine(charArray.GetItem(i) + ""); 32 } 33 34 Console.ReadLine(); 35 } 36 } 37 38 39 class MyGenericArray<T,K> 40 { 41 private T[] array; 42 43 public MyGenericArray(int size) 44 { 45 array = new T[size + 1]; 46 } 47 48 public T GetItem(int index) 49 { 50 return array[index]; 51 } 52 53 public void SetItem(int index, T value) 54 { 55 array[index] = value; 56 } 57 }
二:泛型的数据类型参数可以带限制的
泛型的数据类型可以带限制的,规定T只能传值类型或者传引用类型,这里限制为第一个数据类型T为值类型
1 //可以限制为class,interface,具体的class 2 class MyGenericArray<T,K> where T:struct 3 { 4 private T[] array; 5 6 public MyGenericArray(int size) 7 { 8 array = new T[size + 1]; 9 } 10 11 public T GetItem(int index) 12 { 13 return array[index]; 14 } 15 16 public void SetItem(int index, T value) 17 { 18 array[index] = value; 19 } 20 }
三:继承中泛型的处理
像SubMyGenericArray继承的时候强制规定只实现了对int的继承,它不在是一个泛型类了,像SubMyGenericArray2继承的时候,子类还是一个泛型类
1 //可以限制为class,interface,具体的class 2 class MyGenericArray2<T> where T : struct 3 { 4 private T[] array; 5 6 public MyGenericArray2() 7 { 8 } 9 10 public MyGenericArray2(int size) 11 { 12 array = new T[size + 1]; 13 } 14 15 public T GetItem(int index) 16 { 17 return array[index]; 18 } 19 20 public void SetItem(int index, T value) 21 { 22 array[index] = value; 23 } 24 } 25 26 //继承的时候强制规定只实现了对int的继承,子类不在是一个泛型类了 27 class SubMyGenericArray : MyGenericArray2<int> 28 { 29 30 } 31 32 //继承的时候,子类还是一个泛型类 33 class SubMyGenericArray2<T> : MyGenericArray2<T> where T:struct 34 { 35 36 }
3.C#中泛型类的进一步探讨相关推荐
- 区块链技术在物联网中应用的思路探讨
物联网作为新一代信息通信技术高度集成和综合应用的典范,正在与经济社会深度融合,深刻改变生产活动.社会管理.公共服务.随着物联网技术在各行业中的普及和不断深化,人类社会正进入"万物互联&quo ...
- 计算机管理系统在护理管理中的应用,计算机信息技术在护理管理中的设计应用探讨.doc...
计算机信息技术在护理管理中的设计应用探讨 摘 要本文主要对护理管理中计算机信息技术应用的意义.现代医院护理管理中计算机信息技术融入的相关要求与具体设计思路进行探析. [关键词]护理管理 计算机信息技术 ...
- MyBatis复杂mapper,根据条件数组中的数据进一步判断、从子查询中进一步筛选数据
MyBatis复杂mapper,根据条件数组中的数据进一步判断.从子查询中进一步筛选数据 需要从子查询中进一步获取数据,数组中的数据进一步判断 <select id="queryByP ...
- 项目管理中问题与对策探讨
[摘要]以深圳市东深电子技术有限公司的项目管理现状为基础,剖析该公司在项目管理方面存在的弊端,并提出若干指导性建议. 一.存在问题 深圳市东深电子技术有限公司是一家以水行业计算机监控系统工程项目为主的 ...
- C语言函数一章教学,c语言中函数教学的探讨
摘要:C程序是有函数组成的,使用函数可以提高程序设计的效率,因此学习好函数这章对C语言程序的理解和掌握是非常重要的,根据多年教学实践,以案例为引导教学起到了比较好的效果. 关键词:函数教学:函数定义: ...
- 计算机技术在采矿业中的应用,计算机技术在采矿工程中的新应用探讨
齐楚鸣 赵恕兰 占清华 摘 要:在计算机技术快速发展的过程当中,其在多个领域当中得到了应用,并获得了较好的应用效果.在采矿工程生产当中,也需要能够做好计算机技术的结合应用,进一步提升工作开展效果.在 ...
- 如何获得Java中泛型类的类型参数?
获得泛型类的形式参数 Java中提供了Class接口用于描述类的运行时信息.此外,还提供了Type接口用于描述类的类型信息.Type接口有多个子类,包括Class.TypeVariable.Par ...
- WPF中打印问题的探讨[转]
转自:http://blog.sina.com.cn/s/blog_624dc0120100ld6m.html 最近在做一个WPF方面的项目,在打印功能实现上费了很大劲.因为我原来是在做Winform ...
- 二手房买卖中“跳单”行为之探讨
导读:二手房买卖中,涉及税费贷款流程较为繁琐.为了省心安全,无论卖方还是买方,通常会选择中介公司的协助办理过户和贷款.其中,中介公司安排预约看房是促成交易不可或缺的重要一步.但有时,交易双方尤其是买方 ...
最新文章
- pandas计算特征与所有数值特征的相关性并排序可视化:包含pearson、spearman、kendall
- vmos框架_VMOS虚拟大师独立的安卓虚拟机系统【安卓】
- 微信公众平台开发新手教程(图文具体解释)
- 抖音是用python写的吗_用 Python 实现抖音尬舞机
- python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法
- 中小企业上云多地域办公组网,建立高质量云上内网环境
- 二分图匹配(Luogu3386)
- hdu 3657 最大点权独立集变形(方格取数的变形最小割,对于最小割建图很好的题)...
- 端口状态 LISTENING、ESTABLISHED、TIME_WAIT、FIN_WAIT_2、CLOSE_WAIT、CLOSE_WAIT
- java密码查询回显和修改流程_[求助]数据库信息如何回显在我的程序界面中
- 循环遍历java属性_java中循环遍历实体类的属性和数据类型以及属性值
- MediaPlayer/MediaRecorder与AudioTrack/AudioRecord区别(三十九)
- 人工智能历史回眸:达特茅斯会议
- exchange协议发送邮件
- html5 元宵节送祝福,[元宵节祝福语简短5]元宵节祝福语简短
- 用于MAX7456随屏显示器SPI接口的C程序
- 两面夹定理_故事的两面
- ESP32接入米家-小爱同学-IDF环境-巴法平台
- 数组,数组的定义,数组的注意事项
- Layui的layer.confirm弹框用法,很详细
热门文章
- 南大庄建军计算机学院讲座,教师成果 - 南京大学 - 电子信息专业国家级实验教学示范中心...
- java反射原理三种,Java反射的原理,作用
- 微型计算机实验代码,上师大,微型计算机实验全代码.doc
- 命令行启动ssh_如何在虚拟机中正确的第一次启动Linux系统
- 初学者如何搭建一个自己专属的电子实验室?
- 信号与系统课程向学校教务科需要提交的资料
- 太难了…期待一切都能赶快好起来吧
- vue indev.html,webpack多入口热加载很慢
- python3语法手册_Python3 学习手册每日更新
- k8s 自定义dns_K8S 生态周报| Docker v19.03.10 正式发布