当前位置: 首页 > news >正文

怎么做网站关键词推广网易网页游戏

怎么做网站关键词推广,网易网页游戏,深圳十大网站建设公司,网站建设过程有哪几个阶段文章目录 18.1 什么是泛型18.2 C# 中的泛型18.3 泛型类18.3.1 声明泛型类18.3.2 创建构造类型18.3.3 创建变量和实例18.3.4 使用泛型的示例18.3.5 比较泛型和非泛型栈 18.4 类型参数的约束18.4.1 Where 子句18.4.2 约束类型和次序 18.5 泛型方法18.5.1 声明泛型方法18.5.2 调用… 文章目录 18.1 什么是泛型18.2 C# 中的泛型18.3 泛型类18.3.1 声明泛型类18.3.2 创建构造类型18.3.3 创建变量和实例18.3.4 使用泛型的示例18.3.5 比较泛型和非泛型栈 18.4 类型参数的约束18.4.1 Where 子句18.4.2 约束类型和次序 18.5 泛型方法18.5.1 声明泛型方法18.5.2 调用泛型方法18.5.3 泛型方法的示例* 18.6 扩展方法和泛型类18.7 泛型结构18.8 泛型委托18.9 泛型接口18.9.1 使用泛型接口的示例*18.9.2 泛型接口的实现必须唯一 18.10 协变和逆变18.10.1 协变out18.10.2 逆变18.10.3 协变和逆变的不同18.10.4 接口的协变和逆变18.10.5 关于可变性的更多内容 18.1 什么是泛型 ​ 泛型可以将重构代码并且额外添加一个抽象层是专门为多段代码在不同的数据类型上执行相同指令而设计的。 18.2 C# 中的泛型 ​ 泛型不是类型而是类型的模板。 图 18.1 泛型是类型的模板 ​ C# 提供了以下 5 种泛型 类结构接口委托方法 ​ 其中 1 ~ 4 是类型5 是成员。 图 18.2 泛型和用户定义类型 18.3 泛型类 ​ 泛型类不是实际的类而是类的模板因此必须先从它们构建实际的类然后创建类的引用和实例。 在某些类型上使用一个占位符来声明一个类。为占位符提供真实类型构造类型。创建构造类型的实例。 图 18.3 从泛型类创建实例 18.3.1 声明泛型类 在类名之后放置一组尖括号。在尖括号中用逗号分隔占位符字符串用于表示需要提供的类型类型参数。在泛型类声明的主体中使用类型参数来表示替代类型。 18.3.2 创建构造类型 ​ 声明泛型类后就可以告诉编译器使用哪些真实类型来替代占位符编译器将获取这些真实类型并创建构造类型用来创建真实类对象的模板。 图 18.4 为泛型类的所有类型参数提供类型实参让编译器产生一个可以用来创建真实类对象的构造类 泛型类声明上的类型参数用作类型的占位符。在创建构造类型时提供的真实类型是类型实参。 图 18.5 类型参数与类型实参 18.3.3 创建变量和实例 ​ 和非泛型类一样引用和实例可以分开创建。 图 18.6 使用构造类型来创建引用和实例 18.3.4 使用泛型的示例 图 18.7 从泛型类创建的两个构造类 18.3.5 比较泛型和非泛型栈 表 18.1 非泛型栈和泛型栈之间的区别 图 18.8 非泛型栈和泛型栈 18.4 类型参数的约束 ​ 要让泛型更加有用需要提供额外的信息让编译器直到参数可以接受哪些类型这些额外的信息称为约束。 18.4.1 Where 子句 每个有约束的类型参数都有自己的 where 子句。如果形参有多个约束则使用逗号分隔。 ​ 有关 where 子句的要点如下 在类型参数列表的关闭尖括号后列出。不使用分隔符。可以随意次序列出。where 是上下文关键字可以在其他上下文使用。 18.4.2 约束类型和次序 表 18.2 约束类型 最多只能有一个主约束必须放在第一位。可以有任意个接口名称约束。如果存在构造函数约束必须放在最后。 图 18.9 如果类型参数有多个约束则必须遵守的顺序 18.5 泛型方法 ​ 泛型方法可以在泛型 / 非泛型类、结构和接口中声明。 图 18.10 泛型方法可以声明在泛型类型和非泛型类型中 18.5.1 声明泛型方法 泛型方法有两个参数列表。 方法参数列表圆括号内。类型参数列表尖括号内。 方法参数列表后放置可选的约束子句。 18.5.2 调用泛型方法 ​ 编译器使用每个构造函数实例产生方法的不同版本。 图 18.11 有两个实例的泛型方法 ​ 编译器有时可以从方法参数推断类型参数。例如对于如下的方法声明 ​ 编译器可以从 myInt 参数的类型推断出 T 为 int因此可以省略尖括号。 18.5.3 泛型方法的示例* 18.6 扩展方法和泛型类 ​ 和非泛型类一样泛型类的扩展方法必须满足如下条件 声明为 static。是静态类的成员。第一个参数类型中必须有关键字 this后面是扩展的泛型类的名字。 18.7 泛型结构 ​ 泛型结构的规则和条件与泛型类一致。 18.8 泛型委托 ​ C# LINQ 特性大量使用泛型委托。 18.9 泛型接口 ​ 泛型接口的声明和非泛型接口的声明类似但是要在接口名称后的尖括号中放置类型参数。 18.9.1 使用泛型接口的示例* 18.9.2 泛型接口的实现必须唯一 ​ 必须保证类型实参的组合不会在类型中产生两个重复的接口。 ​ 例如对于下面的泛型接口会产生潜在的冲突S 可能用作 int 类型此时会有两个相同类型的接口这将不被允许。 泛型结构的名称不会和非泛型冲突。 18.10 协变和逆变 18.10.1 协变out ​ 给出如下例子 ​ 我么知道Dog 类型的变量可以作为 Animal 类型的引用因为 Dog 由 Animal 派生而来这里发生了隐式类型转换。 图 18.12 赋值兼容性意味着可以将派生类型的引用赋值给基类变量 ​ 进行扩展添加 Factory 泛型委托、MakeDog 方法并且 MakeDog 方法可以匹配 Factory 委托。 ​ Main 函数的第二行尝试将 FactoryDog 类型赋给 FactoryAnimal类型这将产生报错。 ​ 问题的原因在于委托 FactoryDog 并没有从 FactoryAnimal 派生得到。 图 18.13 赋值兼容性不使用因为两个委托没有继承关系 ​ 我们仅希望传递 Dog 给 FactoryAnimal 委托时代码对 Dog 类型中的 Animal 部分进行操作这并不会发生越界访问是完全合理的。为了完成我们的期望可以通过添加 out 关键字改变委托声明。 图 18.14 协变关系允许程度更高的派生类型处于返回及输出位置 18.10.2 逆变 ​ 与协变相反如果类型参数只用于方法中的输入参数那么可以传入更高程度的派生类引用因为委托的方法中只对其基类部分进行操作。 ​ 调用委托时调用代码为方法 ActOnAnimal 传入的 Dog 类型的变量而其期望的是 Animal 对象因此可以进行操作。 图 18.15 逆变允许程度更高的派生类型作为输入参数 18.10.3 协变和逆变的不同 图 18.16 协变和逆变 18.10.4 接口的协变和逆变 ​ 相同的原则也适用于接口。 18.10.5 关于可变性的更多内容 ​ 前面的内容讲解了显式的协变和逆变。实际上编译器可以自动识别某个已构建的委托是协变还是逆变并且自动进行类型强制转换但这通常发生在没有为对象的类型赋值的时候。 Main 第一行创建了 FactoryAnimal 类型的委托并直接将方法 MakeDog 赋值给它。由于没有创建 FactoryDog 委托因此编译器清楚这是协变关系允许这种赋值哪怕委托中没有 out 标识符。到 Main 第三行时由于第二行已经创建了 FactoryDog 委托因此后面的协变关系赋值需要 out 标识符才能完成。 可变性只适用于引用类型不使用与值类型。in、out 关键字的显式变化只适用于委托和接口不适用于类、结构和方法。不使用 int、out 关键字的委托和接口类型参数是不变的。
http://www.zqtcl.cn/news/266761/

相关文章:

  • 安徽优化网站运营平台
  • 小型企业网站设计教程面备案网站建设
  • 重庆业务外包网站建设办公室装修一般多少钱一个平方
  • 网站查询域名ip解析手机短视频网站的建设
  • 甘肃机械化建设工程有限公司网站微小店网站建设价格
  • 个人空间网站建设报告网络游戏交易平台
  • 深圳医疗网站建设中小企业网站功能
  • 汕头集团做网站方案建设网站要买空间吗
  • 宁波搭建网站专业展馆展厅设计公司深圳
  • 山东省建设工程电子信息网站广州开发区第一小学
  • 网站建设推广重要性河北高端网站建设
  • 网站的seo方案怎么做wordpress自动转内链
  • 番禺手机网站制作推广wordpress远程数据库
  • 企业网站seo外包 s深圳国内设计网站
  • 临海高端营销型网站建设地址免费网站alexa排名查询
  • 做企业网站的轻量级cms建设电子商务网站流程图
  • 淘宝网站设计分析国内在线免费服务器
  • wordpress网站文章加密网站建设 博采网络
  • 哪个网站做美食好一点网络运维个人工作总结
  • 做网红用哪个网站教人做策划的网站
  • 百度免费网站怎样建设wordpress模板目录结构
  • 长沙简单的网站建设公司wordpress+手机应用
  • 用spl做网站wordpress不用缓存
  • 微网站模板标签网站被攻击怎么让百度重新蜘蛛自动抓
  • 自己想做一个网站网页背景怎么设置
  • 国外做项目的网站软件定制外包平台
  • 做网站要用什么软件房地产建设网站
  • 龙岗爱联有学网站建设装饰公司简介
  • pc端网站怎么做自适应哪个公司网站备案快
  • 品牌网站建设黑白I狼J烟台开发区建设业联合网站