C#中的where从句

C#中的where从句

2011-07-03 13:07OrphousV | 分类:C#/.NET | 浏览8443次

能解释一下下面两段代码中where的作用吗?using System;public class MyGenericClass <T> where T: IComparable, new(){    // The following line is not possible without new() constraint:    T item = new T();}

using System;using System.Collections;

interface MyI{}

class Dictionary<TKey,TVal>    where TKey: IComparable, IEnumerable    where TVal: MyI{    public void Add(TKey key, TVal val)    {    }}

另外,这个特性具体有什么实际意义?怎么应用?希望举一个例子。

分享到:

泛型类定义时的where子句表示的是泛型类型约束,也就是对泛型需要满足的条件的一个限制。比如where T: IComparable, new()说明,这里的泛型T必须实现IComparable接口,并且必须有公有无参数构造函数。因为泛型为中可能会用到一些与泛型相关的操作,但因为是泛型,所以不能保证使用时的泛型一定能进行这项操作,所以有这么个约束,保证在程序编译时能够检查出泛型是否满足要求。例如,你写的MyGenericClass类中,对T进行了实例化:new T(),这就要求T一定要有公有无参数构造函数,如果没有where中的泛型类型约束,是不能保证这样实例化能够成功的。更详细的说明,可以参考:
时间: 2024-11-23 16:35:23

C#中的where从句的相关文章

为何在查询中索引未被使用 (Doc ID 1549181.1)

* 为何在查询中索引未被使用 (Doc ID 1549181.1) To Bottom 文档内容 用途   排错步骤   快速检查   表上是否存在索引?   索引是否应该被使用?   索引本身的问题   索引列或者索引的前置列是否在单表(non-join)查询的 Where 条件中(predicate list)?   索引列是否用在连接谓词中(join predicates)?   索引列在 IN 或者多个 OR 语句中?   索引列是否被函数修改?   隐式类型转换(implicit ty

sas中的sql(4) 多表操作,内连接,外连接(left | right | full/join),In-Line Views

Understanding Joins 1.Joins combine tables horizontally (side by side) by combining rows. The tables being joined are not required to have the same number of rows or columns. (被join的表不需要行或列与join表的相同) 2.When any type of join is processed, PROC SQL sta

英语四级从句讲解

虽然在英语四级复习中,同学们都知道从句很重要,可是大家对从句并没有一个清晰的认识,那么让我们先来说说什么是从句.从句(clause)是指内含主语部分和谓语部分,表达一定的概念,但不成为一个独立句子的一组词,叫做从句.通常从句在句中可用作主语.表语.宾语.定语.状语等句子成分,所以在英语四级考试中,所考的从句,大概有五类: 名词性从句:主语从句.宾语从句.同位语从句.表语从句连接词取决于后面的从句是什么样的形式; 如果是陈述句,直接加that引导; 一般疑问句:先把一般疑问句变成陈述句语序,然后在

【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&amp;倒装句(Reduced Clauses、Inverted Sentences) 【完结】

[英语魔法俱乐部——读书笔记] 3 高级句型-简化从句&倒装句(Reduced Clauses.Inverted Sentences):(3.1)从属从句简化的通则.(3.2)形容词从句简化.(3.3)名词从句简化.(3.4)副词从句简化.(3.5)简化从句练习.(3.6)倒装句 3.1 从属从句简化的通则(Generally Reduction Rules of Dependent Clause) 3.1.1 简化从句:英语语法以句子为研究对象,而其句型也分为简单句.复句和合句之分,其中简单句

非限制定语从句的用法

非限制性定语从句也是定语从句的一种,在高中语法知识中它也是非常重要的一项的,老师们对于非限定性定语从句的讲解也是非常重视的.因为在考试中经常会出现该从句的讲解,下面大家就跟随小编一起来了解该从句的讲解. 说到非限定性定语从句的讲解,还要分成不同的部分,首先大家要知道就得就是该从句的作用是什么.其实它在句子中是一个独立的成分,不会受到主句 的限制,把从句去掉之后,主句仍然是成立的.这也是为什么它会叫做非限定性定语从句.其次,大家要了解该从句的形式:非限制性定语从句与先行词以及主句之 间的关系不甚紧

《Entity Framework 6 Recipes》中文翻译系列 (16) -----第三章 查询之左连接和在TPH中通过派生类排序

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有如图3-11所示的模型. 图3-11 一个包含Product和TopSelling的模型 畅销产品有一个与之关联的TopSelling实体.当然,不是所有的产品都是畅销产品.这就是为什么关系为零或者1.当一个产品为畅销产品时,与之关联的topSelling实体包含一个用户评级.你想查找和呈现所有的产品,和与之

Inverted sentences

And ever has it been that love knows not its own depth until the hour of separation. 除非临到了别离的时候,爱永远不会知道自己的深浅. 这是个倒装句,因为ever位于句首,句子要倒装,it是形式主语,has been是谓语,that从句是真正的主语从句,until后为状语 倒装句 在英语中,主语和谓语的语序通常是主语在前,谓语在后.这类语序被称为“自然语序”.但有时为了强调句子的某一部分,或由于其它诸如语法结构或

实体框架高级应用之动态过滤 EntityFramework DynamicFilters

实体框架高级应用之动态过滤 EntityFramework DynamicFilters 我们开门见山,直奔主题. 一.EntityFramework DynamicFilters 是什么,它能做什么? EntityFramework DynamicFilters是一个开源项目.你可以到这里去下载它的源码.顾名思义,它为我们做的事,就是帮我们动态过滤数据.为了照顾初学者,我们从头道来. 1.何为数据过滤? 数据过滤说简单点,就是去掉我们不想要的数据.SQL语句中的where从句,Linq中的wh

Open SQL详解

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4293497.html 读取数据SELECT. 262 读取单行... 263 DISTINCT. 263 读取多行... 264 列别名... 264 存储到指定变量中... 264 SELECT * INTO….. 265 追加读取APP