C#泛型编的实例讲解
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"C#泛型编的实例讲解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型编程实例
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
互联网佳科技有限公司
互联网科技巨头监管
今日互联网科技
厦门中拓互联网络科技有限公司
朗新科技与工业互联网
互联网科技未来
智网互联网科技
睿民互联网科技
互联网科技汛
互联网科技咨询
富国互联网科技创新基金
央行互联网金融科技公司
互联网科技项目计划书材料类
消费医药和互联网科技
内蒙古九一互联网科技
互联网公司黑科技创始人
卓翼科技产业互联网合作
中和天地互联网科技有限公司
滨湖区互联网智能科技产品有哪些
互联网领先科技宣传片
互联网科技保险
太原新华互联网科技学校怎么样
中化能源互联网科技招聘
互联网校园科技培训
佳云科技和互联网广告
移动互联网年度科技创新
互联网科技融合创新
青岛易易互联网科技
平安好医生打造互联网科技医疗
互联网的黑科技实验室