• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 浅析c#范型中的特殊关键字where & default

浅析c#范型中的特殊关键字where & default

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了范型,分布式系统原理与范型,范型是什么意思,成都范型,成都范型服饰公司等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在看源码的时候看见了where和default,虽说default很常见,但是它的用法我却是第一次看到,哎,基础不扎实啊!

下面介绍下这两个特殊的关键字:
一、Where关键字
where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。
1.接口约束。
例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable<T> 接口:

4.对于多个类型参数,每个类型参数都使用一个 where 子句
例如:

二、Default关键字
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:

T 是引用类型还是值类型。
如果 T 为值类型,则它是数值还是结构。
给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。

解决方案是使用 default 关键字,此关键字对于引用类型会返回空,对于数值类型会返回零。对于结构,此关键字将返回初始化为零或空的每个结构成员,具体取决于这些结构是值类型还是引用类型。以下来自 GenericList<T> 类的示例显示了如何使用 default 关键字。

new() 约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数(或默认)构造函数。

new() 约束出现在 where 子句的最后。

对于多个类型参数,每个类型参数都使用一个 where 子句

还可以将约束附加到泛型方法的类型参数

请注意,对于委托和方法两者来说,描述类型参数约束的语法是一样的

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析c#范型中的特殊关键字where & default

相关文章

  • 2017-05-28C#程序员最易犯的编程错误
  • 2017-05-28C#统计字符串中数字个数的方法
  • 2017-05-28使用C#编写简单的图形化的可发送附件的邮件客户端程序
  • 2017-05-28DevExpress设置FocusedNode背景色的方法
  • 2017-05-28Silverlight文件上传下载实现方法(下载保存)
  • 2017-05-28解决C#中Linq GroupBy 和OrderBy失效的方法
  • 2017-05-28举例讲解C#中自动实现的属性
  • 2017-05-28unity实现摄像头跟随
  • 2017-05-28C# 利用IRawPixels接口遍历栅格数据
  • 2017-05-28C#根据反射和特性实现ORM映射实例分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 探讨Object转为String的几种简易形式详解
    • C#中英文混合字符串截取函数
    • C# Page用于各页面继承功能实例
    • winform 实现控制输入法
    • C#实现压缩HTML代码的方法
    • C# 获取IP及判断IP是否在区间
    • DoDragDrop方法的使用
    • C#开发教程之利用特性自定义数据导出到Excel
    • 浅谈static a[n*m]={0};中static的作用
    • 使用C#代码获取存储过程返回值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有