C#笔记进阶篇08 泛型

C#笔记进阶篇 泛型——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。写在前边:泛型允许灵活地创建类型,处理一种或多种特定类型的对象,这些类型是在实例化时确定的,否则就使用泛型类型——清华大学出版社《C#入门经典(第五版)》使用泛型不定义数据类型,先写逻辑,就可以使用Object类型可以让我们延迟定义数据类型,来编写程序C#提供了5种泛型,类、结构、接口、委托和方法1. 泛
摘要由CSDN通过智能技术生成

C#笔记进阶篇08 泛型

——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。

写在前边:

泛型允许灵活地创建类型,处理一种或多种特定类型的对象,这些类型是在实例化时确定的,否则就使用泛型类型——清华大学出版社《C#入门经典(第五版)》

使用泛型

  • 不定义数据类型,先写逻辑,就可以使用Object类型
  • 可以让我们延迟定义数据类型,来编写程序
  • C#提供了5种泛型,类、结构、接口、委托和方法

1. 泛型类

常规的非泛型类在创建和使用时包括:声明类和实例化。但是泛型类不是实际的类,而是类的模板,所以我们必须先从它们构建实际的类类型,然后创建这个构建后的类类型的实例。

1.1 声明泛型类

如下代码中,声明一个SomeClass的泛型类,类型参数被列在尖括号中

class SomeClass<T1,T2>
{
   
	public T1 SomeVar = new T1();
	public T2 OtherVar = new T2();
}

1.2 创建构造类型

从泛型类构建类类型 :列出类名字并在尖括号中提供真实类型来替代类型参数

SomeClass<short, int> myInst;

7.1

1.3 创建变量和实例

例:承接创建构造类型,在栈上为myInst分配一个引用

myInst = new SomeClass<short, int> ();

7.2

2. 泛型结构

泛型结构的规则和条件与泛型类是一样的

例:下面代码声明一个泛型结构,Main创建两个构造类型的对象

	struct PieneOfData<T>
    {
   
        public PieneOfData(T value)
        {
   
            _Data = value;
        }
        private T _Data;
        public T Date
        {
   
            get {
    return _Data; }
            set {
    _Data = value; }
        }
    }
    class Program
    {
   
        static void Main(string[] args)
        {
   
            var intData = new PieneOfData<int>(10);
            var stringData = new PieneOfData<string>("Hi there.");

            Console.WriteLine("intData ={0}",intData.Date);
            Console.WriteLine("stringData ={0}",stringData.Date);
        }
    }
    //源码来自 人民邮电出版社《C#2008 C#图解教程》 第19章

控制台输出结果:


intData =10
stringData =Hi there.


3. 泛型接口

3.1 声明泛型接口

需要在接口名称之后的尖括号中有类型参数

interface IMyIfc<T>
{
   
	T ReturnIt(T inValue);
}

3.2 实现泛型接口

例:下面代码声明一个泛型结构,继承自泛型接口IMyIfc,Main实例化泛型的两个对象

class Simple<S> : IMyIfc<S>
{
   
	public S ReturnIt(S inValue)
	{
   
		return inValue;
	}
}

class Program
{
   
	static void Main(string[
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值