c# 泛型

c# 泛型

泛型是c#中一种代码重用技术。比如说两个模块功能相近,只是处理对象不同,一个是int,一个是float,这时使用通用参数可简化编程。

泛型与C++中模板机制类似,但没有模板复杂。比如c#不允许非类型模板参数:template  <int i>{};

c#还提供类型参数约束。

类型参数 T 约束
约束 说明
where T:struct 必须为值类型
shere T:class 必须为引用类型
shere T:new() 类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new()约束必须放最末
shere T:base_class_name 必须是此类或其派生类
shere T:interface_name 必须是此接口
时间: 2024-10-18 12:59:41

c# 泛型的相关文章

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述 使用泛型打印输出任意类型的数组,为什么调用时有错误? import java.util.Arrays; public class FanXing { public static void printMatrix(T[][] matrix){ for(int i=0;i<matrix.length;i++){ System.out.println(Arrays.toString(matrix[i])); } } public static void main(String[] args)

诊断Java代码: 轻松掌握 Java 泛型,第4部分

至此,在这个讨论 JSR-14 和 Tiger 中泛型类型的微型系列中,我们已经探讨了: 泛型类型及被设计成支持它们的即将发布的功能 基本类型.受约束的泛型以及多态方法上的限制 几个强加给这些 Java 扩展的限制 这些扩展语言的编译器所用的实现策略如何使这些限制成为必需 在泛型类型中添加对"裸"类型参数的 new 操作的支持所带来的影响 本月,我们将探讨在可以处理 mixin(可能被期望是泛型类型中最强大的功能)之前需要先解决的问题,以此来结束对 Java 语言中泛型类型的讨论. m

诊断Java代码: 轻松掌握Java泛型,第3部分

这一系列主要讨论在 Java 编程中添加泛型类型,本文是其中的一篇,将研究还未讨论过的有关使用泛型的两个限制之一,即添加对裸类型参数的 new 操作的支持(如类 C<T> 中的 new T() ). 正如我 上个月所提到的那样,Tiger 和 JSR-14 通过使用"类型消除(type erasure)"对 Java 语言实现泛型类型.使用类型消除(type erasure),泛型类型仅用于类型检查:然后,用它们的上界替换它们.由此定义可知:消除将与如 new T() 之类

泛型-c# 动态创建控件 及触发事件 即插即用。

问题描述 c# 动态创建控件 及触发事件 即插即用. 各大大好,初来驾到,请大家多多关照,问题是这样的.需求 :需要动态添加控件.然后需要项目做出来后要实现"即插即用"的特点.(即插即用:我们要是更新一个功能,用户只要更新这个控件就可以直接使用,而不用更新整个客服端)问题 :知道要用泛型来写,但是看了一天了,不知道如何下手,现已写了如下代码:using System;using System.Collections.Generic;using System.Linq;using Sys

泛型

 什么是Java泛型                1.java泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.                2.java泛型可以让你消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中.这就是泛型所做的工作. 为什么要有泛型 先来看看以下代码,        publi

泛型T 如何在扩展方法中使用?

问题描述 泛型T 如何在扩展方法中使用? 本来想了解一下扩展方法,但是看到文库中的实例明显有问题,特来提问 泛型对象T 如何使用Length 属性? 可以像类中一样加继承于某某类的约束吗? http://wenku.baidu.com/link?url=Vz-Cjrq24tvblbk0l1I4IPYYfZ82jkGpzGBoNBDhi6qSCJko9hSTcrKGWrunO91TqTgyqB0AMvueHUP1or-mi8ktWMejceDW6Y-OphMnBh7 public static c

java泛型type体系整理

一直对jdk的ref使用比较模糊,早上花了点时间简单的整理了下,也帮助自己理解一下泛型的一些处理.   java中class,method,field的继承体系     java中所有对象的类型定义类Type   说明:    Type :  Type is the common superinterface for all types in the Java programming language. These include raw types, parameterized types, 

关于泛型实例声明类型的问题,问题在注释里面

问题描述 关于泛型实例声明类型的问题,问题在注释里面 class Employee{ } class Manager extends Employee{ }class CEO extends Manager{ }public class Test{ public static void main(String[] args) { List<? super Manager> list=new ArrayList(); //请问,new ArrayList()中,这里面的Manager有什么用吗?

求个泛型排序写法,如下。

问题描述 求个泛型排序写法,如下. public static List<T> SortAsc<T>(List<T> source, string sortby) { List<T> tlist = source.OrderBy(x => x.GetType().GetProperty(sortby)).ToList<T>(); return tlist; } 这个方法我写的,测试根本没排序,求大神指点迷津 解决方案 List<T&g

Java泛型&lt;? extends T&gt;和&lt;? super T&gt;

<? extends T>是泛型的上界(含),<? super T>是泛型的下界(含), 而且,对泛型不能只约束下限,如果只对子类做约束,父类可以千奇百怪. extends后面跟的类型如<任意字符 extends 类/接口>表示泛型的上限, super表示泛型的下限. 1 2 3 4 5 6 7 8 9 10 import java.util.*; class Demo<T extends AbstractList>{} public class Test