C#泛型编的实例讲解
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"C#泛型编的实例讲解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型编程实例
千家信息网最后更新 2025年02月01日C#泛型编的实例讲解
本篇内容介绍了"C#泛型编的实例讲解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
C# 泛型编程实例:
using System; using System.Collections.Generic; using System.Text; namespace GenericTest { class Program { static void Main(string[] args) { //使用string,int来实例化Test类 Test t = new Test("SHY520",22); //调用泛型类中的方法 t.SetValue(); } } /**//// /// 定义一个泛型类,该类有两个类型参数,分别是T,S /// /// 类型参数 /// 类型参数 public class Test { //泛型类的类型参数可用于类成员 private T name; private S age; public Test(T Name,S Age) { this.name = Name; this.age = Age; } public void SetValue() { Console.WriteLine(name.ToString()); Console.WriteLine(age.ToString()); } } }
上面的C# 泛型编程例子不是很恰当,目的是让初学C# 泛型的你了解一下泛型的定义及实例化方法,如上,我们定义了一个泛型类,那么如何实现泛型类的继承呢?这里需要满足下面两点中的任何一点即可:
1、C# 泛型类继承中,父类的类型参数已被实例化,这种情况下子类不一定必须是C# 泛型类;
2、父类的类型参数没有被实例化,但来源于子类,也就是说父类和子类都是泛型类,并且二者有相同的类型参数;
//如果这样写的话,显然会报找不到类型T,S的错误 public class TestChild : Test { } //正确的写法应该是 public class TestChild : Test{ } public class TestChild : Test { } public class TestChild : Test { }
接着我们来看看泛型接口,其创建以及继承规则和上面说的泛型类是一样的,看下面的代码:
public interface IList { T[] GetElements(); } public interface IDictionary { void Add(K key, V value); } // 泛型接口的类型参数要么已实例化 // 要么来源于实现类声明的类型参数 class List : IList, IDictionary { public T[] GetElements() { return null; } public void Add(int index, T value) {} }
在来看一下C# 泛型委托,首先我们定义一个类型参数为T的委托,然后在类中利用委托调用方法:
using System; using System.Collections.Generic; using System.Text; namespace GenericTest { //定义一个委托,类型参数为T,返回值类型T //泛型委托支持在返回值和参数上应用类型参数 delegate string GenericDelete(T value); class test { static string F(int i) { return "SHY520"; } static string G(string s) { return "SHY520"; } static void Main(string[] args) { GenericDelete G1 = G; GenericDelete G2 = new GenericDelete(F); } } }
我们再来看C# 泛型方法,C#的泛型机制只支持在方法申明上包含类型参数,也即是泛型方法。特别注意的是,泛型不支持在除了方法以外的其他类/接口成员上使用类型参数,但这些成员可以被包含在泛型类型中,并且可以使用泛型类型的类型参数。还有一点需要说的就是,泛型方法可以在泛型类型中,也可以存在于非泛型类型中。下面我们分别看一下泛型类型的申明,调用,重载和覆盖。
using System; using System.Collections.Generic; using System.Text; namespace GenericTest { class GenericClass { //申明一个泛型方法 public T getvalue(T t) { return t; } //调用泛型方法 //注意:在调用泛型方法时,对泛型方法的类型参数实例化 public int useMethod() { return this.getvalue(10); } //重载getvalue方法 public int getvalue(int i) { return i; } } //下面演示覆盖 //要注意的是,泛型方法被覆盖时,约束被默认继承,不需要重新指定约束关系 abstract class Parent { public abstract K TEST(K k, V v) where K : V; } class Child : Parent { public override T TEST(T t, S s) { return t; } } }
"C#泛型编的实例讲解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
类型
参数
方法
C#
实例
委托
子类
成员
接口
支持
内容
情况
更多
来源
知识
要么
面的
编程
实用
恰当
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
祭祀服务器
excel连接数组数据库
手机数据流量显示服务器异常
万方数据库查书
惠州微商软件开发报价
浙江工业软件开发价位
软件开发最挣钱行业
北京鑫凌网络技术有限公司
网络安全作文500字优秀
幻塔哪些服务器是官服
如何看程序的数据库类型
汕头家政软件开发报价
软件开发服务方案价钱
互联网四情信息科技平台报价
军人网络安全剖析
数据库拿出来数据差16小时
深圳市鑫北斗软件开发
小编查阅了中英文的文献数据库
宁阳pc软件开发
软件开发季度总结报告
pdb数据库ent格式
扫地机器人软件开发工程师
网络安全存在隐患英语
浙江杭州有哪些网络安全公司
设计数据库的原则
幼儿园网络安全事件应急预案
想开互联网科技公司怎么样
宁阳pc软件开发
轨迹地图怎么保存数据库
学校内网服务器无管理员权限