我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#泛型编的实例讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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# 泛型的你了解一下泛型的定义及实例化方法,如上,我们定义了一个泛型类,那么如何实现泛型类的继承呢?这里需要满足下面两点中的任何一点即可:

C# 泛型类继承中,父类的类型参数已被实例化,这种情况下子类不一定必须是C# 泛型类;

父类的类型参数没有被实例化,但来源于子类,也就是说父类和子类都是泛型类,并且二者有相同的类型参数;

//如果这样写的话,显然会报找不到类型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#泛型编的实例讲解”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#泛型编的实例讲解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#泛型编的实例讲解

本篇内容介绍了“C#泛型编的实例讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型编程实例:using System; usi
2023-06-17

C++泛型编程综合讲解

泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型
2022-12-26

C# 泛型实现的实例分析

这期内容当中小编将会给大家带来有关C# 泛型实现的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C# 泛型实现在 .NET 2.0 中,C# 泛型在 IL(中间语言)和 CLR 本身中具有本机支持
2023-06-17

golang泛型编程的实用案例

Golang泛型编程的实际应用案例,需要具体的代码示例引言:随着云计算、大数据和人工智能的发展,软件开发工程师面临的挑战日益增加。编程语言的泛型特性能够提供更高效、更灵活的解决方案,而Golang作为一门现代化的编程语言,终于在1.18版
golang泛型编程的实用案例
2024-01-20

C#泛型接口实例应用

这篇文章主要讲解了“C#泛型接口实例应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型接口实例应用”吧!C# 泛型接口代码//Type parameter T in angle br
2023-06-17

java 泛型的详解及实例

java 泛型的详解及实例Java在1.5版本中增加了泛型,在没有泛型之前,从集合中读取每一个对象都需要进行强转,如果一不小心插入了类型错误的对象,在运行时就会报错,给日常开发带来了很多不必要的麻烦,比如以下代码:public class
2023-05-31

C#泛型的使用案例

这篇文章介绍了C#泛型的使用案例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

C#泛型集合实例怎么用

小编给大家分享一下C#泛型集合实例怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!C# 泛型集合了解之前我们明白集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。C# 泛型是C# 2.0中的新增
2023-06-17

Java 获取泛型的类型实例详解

Java 获取泛型的类型实例详解Java 泛型实际上有很多缺陷,比如不能直接获取泛型的类型,不能获取带泛型类等。以下方式是不正确的:①.获取带泛型的类的类型Class lstUClazz = List.class
2023-05-31

C++ stable_sort()实例讲解

stable_sort()是C++标准库中的一个排序算法,它用于对容器中的元素进行排序。与其他排序算法不同的是,stable_sort()会保持相等元素的相对顺序不变。下面是一个使用stable_sort()的简单示例,对一个包含字符串的v
2023-10-08

C++ isalpha()实例讲解

isalpha()函数是C++中的一个字符处理函数,用于判断一个字符是否为字母。以下是isalpha()函数的用法示例:```cpp#include #include using namespace std;int main() {char
2023-10-12

模板库和泛型库在 C++ 泛型编程中的作用?

模板库和泛型库通过允许数据类型参数化和提供预定义的模板来实现泛型编程,提高了代码的可复用性和灵活性,包括:模板库:提供模板声明机制,创建根据数据类型参数化的类型或函数,例如 std::vector 模板容器。泛型库:提供预定义的模板函数和类
模板库和泛型库在 C++ 泛型编程中的作用?
2024-04-24

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录