where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。
1.接口约束。
例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable<T> 接口:
public class MyGenericClass<T> where T:IComparable { }
2.基类约束:指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型类型的类型参数。
这样的约束一经使用,就必须出现在该类型参数的所有其他约束之前。
class MyClassy<T, U>
where T : class
where U : struct
{
}
3.where 子句还可以包括构造函数约束。
可以使用 new 运算符创建类型参数的实例;但类型参数为此必须受构造函数约束 new() 的约束。new() 约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数(或默认)构造函数。例如:
public class MyGenericClass <T> where T: IComparable, new()
{
// The following line is not possible without new() constraint:
T item = new T();
}
new() 约束出现在 where 子句的最后。
4.对于多个类型参数,每个类型参数都使用一个 where 子句,
例如:
interface MyI { }
class Dictionary<TKey,TVal>
where TKey: IComparable, IEnumerable
where TVal: MyI
{
public void Add(TKey key, TVal val)
{
}
}
5.还可以将约束附加到泛型方法的类型参数,例如:
public bool MyMethod<T>(T t) where T : IMyInterface { }
请注意,对于委托和方法两者来说,描述类型参数约束的语法是一样的:
delegate T MyDelegate<T>() where T : new()
分享到:
相关推荐
T396240109.zip VB.net中,如何动态构建Linq的Where子句 https://bbs.csdn.net/topics/396240109
WHERE子句;WHERE子句;比较运算符用于比较(除TEXT和BLOB类型外) 两个表达式值,MySQL支持的比较运算符有:=(等于)、<(小于)、(小于等于)、>(大于)、>=(大于等于)、(相等或都等于空)、(不等于)、!=(不...
易语言学习进阶WHERE子句源码,学习进阶WHERE子句
数据库的学习是一项艰巨的任务,其中的存储过程尤其重要且难以学通……希望这些资源对你有所帮助!
主要给大家介绍了关于SQL中where子句与having子句的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
详析SQL语言的WHERE子句与HAVING子句.pdf
T-SQL中where子句与having子句的对比分析.pdf
易语言学习进阶WHERE子句源码。@资源源码站。
一、生成测试数据用以下SQL创建超女基本信息表(T_GIRL),插入一些测试数据 二、where子句的语法select 字段名1,字段名2,字段名n from
本文精确分析了MySQL数据库中优化WHERE子句。
LiteGuard是一个.NET软件包,可以用作编写保护子句的或。 如果您的项目是未打包和/或导出以供其他解决方案使用的应用程序或库,则二进制包通常是最佳选择。 如果您正在编写打包和/或导出以供其他解决方案使用的库,...
SEIECT—SQL语句中Where子句功能解析与应用.pdf
WHERE子句设置查询条件,过滤掉不需要的数据行。 例如下面语句查询年龄大于10的数据: SELECT * FROM student WHERE age>10 WHERE子句可包括各种条件运算符: 运算符 表示形式 比较运算符(大小比较) >、...
文章目录SQL WHERE 子句引号的使用SQL AND & OR 运算符SQL ORDER BY 子句 SQL WHERE 子句 WHERE 子句用于规定选择的标准。 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。 语法 SELECT 列名称 ...
Linux运维-运维课程d2-MySQL基本SQL语句(下)-11-WHERE子句之逻辑运算符.mp4
主要介绍了详解MySQL中WHERE子句的用法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
用“多叉树”构造SQL查询中的WHERE子句——“多叉树”在VB中的实现及应用.pdf
Linux运维-运维课程d2-MySQL基本SQL语句(下)-10-WHERE子句之等于大于小于不等于
貌似在2005之前的版本中,where子句的顺序是从前往后的。但是又貌似在2005的版本中进行了优化,所有的顺序都被统一成了以过滤能力进行排序的语句。
主要介绍了在oracle中where 子句和having子句中的区别,本文通过sql语句给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下