c# 泛型概述

这篇具有很好参考价值的文章主要介绍了c# 泛型概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c# 泛型概述
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test01
{
//创建一个泛型接口
public interface IGenericInterface
{
T CreateInstance(); //接口中调用CreateInstance方法
}
//实现上面泛型接口的泛型类
//派生约束where T : TI(T要继承自TI)
//构造函数约束where T : new()(T可以实例化)
public class Factory<T, TI> : IGenericInterface where T : TI, new()
{
public TI CreateInstance() //创建一个公共方法CreateInstance
{
return new T();
}
}
class Program
{
static void Main(string[] args)
{
//实例化接口
IGenericInterface<System.ComponentModel.IListSource> factory = new Factory<System.Data.DataTable, System.ComponentModel.IListSource>();
//输出指定泛型的类型
Console.WriteLine(factory.CreateInstance().GetType().ToString());
Console.ReadLine();
}
}
}文章来源地址https://www.toymoban.com/news/detail-527430.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test01
{
//创建一个泛型接口
public interface IGenericInterface
{
T CreateInstance(); //接口中调用CreateInstance方法
}
//实现上面泛型接口的泛型类
//派生约束where T : TI(T要继承自TI)
//构造函数约束where T : new()(T可以实例化)
public class Factory<T, TI> : IGenericInterface where T : TI, new()
{
public TI CreateInstance() //创建一个公共方法CreateInstance
{
return new T();
}
}
class Program
{
static void Main(string[] args)
{
//实例化接口
IGenericInterface<System.ComponentModel.IListSource> factory = new Factory<System.Data.DataTable, System.ComponentModel.IListSource>();
//输出指定泛型的类型
Console.WriteLine(factory.CreateInstance().GetType().ToString());
Console.ReadLine();
}
}
}

到了这里,关于c# 泛型概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 泛型(Generic)

    方法重载 :方法名称相同,参数个数和参数类型不同; 优势 :可以节约方法名称 劣势 :方法过多 语法 :public void writeContent(T t) 原理 :普通的C#代码他是运行在前端进行编译,所有的类型需要确定,但是泛型不同,泛型是在程序运行的时候进行编译的,程序已经可以捕捉到

    2024年02月15日
    浏览(36)
  • C# 泛型

    目录 一、前言 二、相关内容 1、什么是泛型? 2、泛型类 3、泛型方法  4、限定类型参数 4.1、 类型参数的基本约束 4.2、接口约束 4.3、基类约束 4.5、泛型参数与限定类型参数的关系 4.6、自定义约束 5、使用泛型的好处 5.1、代码复用性 5.2、类型安全性 5.3、性能优化 5.4、代码

    2024年02月11日
    浏览(28)
  • 【C# Programming】异常处理、泛型

            C# 允许代码引发从System.Exception 派生。 例如:         两个类似的异常是ArgumentNullException 和 NullReferenceException. 一般在解引用null值时,底层触发NullReferenceException。         参数异常类型(ArgumentException、ArgumentNullException和ArgumentOutRangeException) 一个重要特征是

    2024年02月07日
    浏览(42)
  • C# 泛型List排序的实现

    本文主要介绍了C# 泛型List排序的实现,分享给大家,具体如下: 代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 9

    2024年02月12日
    浏览(40)
  • C#学习,委托,事件,泛型,匿名方法

    目录 委托 声明委托 实例化委托 委托的多播 委托的用途 事件 通过事件使用委托 声明事件 泛型 泛型的特性 泛型方法 泛型的委托 匿名方法 编写匿名方法的语法 类似于指针,委托是存有对某个方法的引用的一种引用类型变量,引用可以在运行时被改变。特别用于实现事件和

    2024年02月12日
    浏览(43)
  • C#进阶 多个泛型约束

    2024年02月09日
    浏览(43)
  • C#(六十二)之泛型的约束

    类型约束 基类约束有两个重要的目的。 1:它允许在泛型类中使用有约束指定的基类成员。 2:确保只能使用支持指定基类或派生类的类型实例。 约束是使用 where 上下文指定的。 下表列出了五种类型的约束: 约束 说明 T:struct 类型参数必须是值类型。可以指定除

    2024年02月17日
    浏览(41)
  • C#基础学习_泛型集合List<T>

    为什么要使用集合? 数组元素个数是固定的,数组一旦定义,就无法改变元素总数。如果需求变化,则必须修改源码。 如果初始化元素总数非常大,则会造成浪费。 集合的特点: 根据需要动态增加元素个数,没有限制 List泛型集合的存储结构,与数组类似,也是通过索引号

    2024年02月13日
    浏览(42)
  • C# 泛型类型详解:编写更安全、可重用的代码

    在C#中,泛型类型是一种强大的特性,它允许我们编写更加灵活和可重用的代码。本文将详细介绍泛型类型的概念、优势以及使用方法,并提供一些示例来帮助新手更好地理解 泛型类型是一种在编译时能够指定类型参数的类型。它允许我们在定义类、接口、方法等时,不指定

    2024年02月20日
    浏览(46)
  • C#中内置的泛型委托Func与Action

    从C# 3.0起很少需要自己声明委托。 System.Func 是一个泛型委托,它可以表示带有返回值的方法。它可以接受一个到多个输入参数,并返回一个指定类型的结果。 System.Func 委托的最后一个类型参数表示方法的返回值类型。而 System.Action 系列代表返回void的方法。 Func委托有很多种

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包