C#复习总结6 (需要进一步复习)

第十七章 泛型

  1. 什么是泛型

    泛型是为了适应多种不同种类的数据类型而存在的。有了它之后,我们可以不用为不同的数据类型而单独写一个适配。这样很麻烦。

    类型不是对象,而是对象的模板。泛型类型也不是类型,而是类型的模板。

  2. 写法

    C++中,写法比c#中多了一点东西。

    Template <typename T>

    申明完之后,然后才用T。

    C#中,直接用

    Class MyStack<T>

    ?

    步骤: 声明泛型类型、通过提供真实类型构建构造类型、从构造类型创建实例。

    <>类型参数。 也叫占位符。 和值参数、引用参数、输出参数等类似。

    ?

    C++中,有模板类,类模板,模板函数,函数模板。其中,模板函数就是函数模板的实例化。

    C#中,有泛型类、构造类。其实后者是前者的实例化。

    ?

    非泛型栈与泛型栈之间的比较:

  3. 类型参数的约束

    为了让编译器知道参数可以接受哪些类型,需要增加额外的信息。

    需要用where字句。

    ?

    Class myclass <T1,T2,T3>

    Where T2: Customer

    Where T3: IComparable

    {

    }

    ?

    约束类型和次序。

    Class struct interface new();

    ?

  4. 泛型方法

    Public void myfun<T,S> (T p, S t) where S:person

    {

    //内容

    }

    ?

    调用:myfun<short,int>();

    推断类型,如果编译器已经知道方法调用中具体的参数类型。我们可以省略<> 不写。

    ?

  5. 扩展方法和泛型类

  6. 泛型结构

struct
Piece<T>

{

public Piece(T data) { _data = data; }

public T _data;

}

  1. 泛型委托

delegate R mydelegate<T,R>(T value);

这里面包含两个参数列表。委托形参列表T value;
类型参数列表 R <T,R>。
返回值、形参列表、约束字句。

  1. 泛型接口

    Interface Imyifc<T> { T ReturnIt(T invalue); }

    注:泛型接口的实现必须唯一。保证类型实参组合不会在类型中产生两个重复的接口。也就是说,不能有同样的接口声明。

  2. 斜变与逆变

    略。

时间: 2024-08-11 05:38:27

C#复习总结6 (需要进一步复习)的相关文章

C#总结复习5(需要进一步复习)

? 第十五章 接口 1.接口: C++中允许多继承没有接口的概念.而java与C#中有,因为C#中 是单继承多接口. 所谓的接口,其实和抽象类.方法相似.都只有一个空方法.其本身不可以为基类,但是允许被其他类继承,而后由其他类或结构实现里面的方法. 2.接口是引用类型 它和继承类似,我们之前可以通过基类的引用的实例化可以访问到派生类当中的方法.在此,我们也可以通过强制转换为接口引用,从而访问实现接口类当中的方法. interface iifc1 { void PrintOut(string s)

3.31下午 百词斩 补充笔记复习 两篇阅读词汇复习

【复习笔记】软件工程概论复习(2)

设计工程 抽象 过程抽象 数据抽象 架构(体系结构) 为系统提供概念上完整性的方式 程序构件的结构或组织+和构件的交互形式+构件所用的数据结构 (设计)模式 已证实的解决方案集 逐步求精(refinement) 自顶向下的设计策略 通过连续精化层次结构的程序细节来实现程序的开发 模块化 将软件划分为独立命名的.可寻址的构件,被称为模块,把这些模块集成到一起满足问题的需求 避免过低或过高的模块化,应该遵循以下原则: 使软件开发更容易: 可以定义和交付软件增量: 更容易实施变更: 更有效地开展测试和

软件构造复习——关于Git的一点复习

Something About Git 一.架构图 (该图取自CSDN) 二.工作流程 1.在工作目录中修改某些文件. 2.对修改后的文保存到暂存区域. 3.提交更新,将保存在暂存区域的文件永久转储到 Git 目录中. 我认为需要注意的是在提交代码到GitHub仓库时,先add,到临时储存区域,再commit,将代码传到仓库. 三.简单指令 指令有很多,我认为日常使用可以主要记下面的几种:(Git指令太多,起码上百) init.clone.config.add.rm.vm.commit.bran

数据结构复习之开题篇(必要时持续更新...)

在复习数据结构之前有必要复习一下C语言的指针 1.指针 int* p; 一个指针类型,名为p,代表的是一个整形所存放的地址编号 1.1一个使用的实例 [注]对变量使用&操作符,意为取它所在的地址 1 #include <stdio.h> 2 3 int main() 4 { 5 int var = 20; /* 实际变量的声明 */ 6 int* ip; /* 指针变量的声明 */ 7 8 ip = &var; /* 在指针变量中存储 var 的地址 */ 9 10 print

只要我认真复习了去参加考研就能考上心仪大学吗?

······很多学子在面对考研时非常迷茫,我该不该考研?我应该选择考什么专业?我怎样选择学校?我能不能考到心仪的院校里?我好好复习认真准备就能考上吗?我应该怎样复习?······面对这些问题,我们不能慌乱,一条一条的理出来解决.首先,该不该考研以及考什么专业这个问题是一个完全属于自己主观控制的选择,要不要考研全凭你自己的想法与选择,是一毕业就投身社会工作或是追求更高的学历.专业怎么选择不仅是看自己擅长什么也要看自己的兴趣.······我应该怎样选择学校?相信所有的考研学子心中的第一目标都是985

考研复习效率慢?我来告诉你该如何提高!

·······效率,在考研备考阶段至关重要,对于许多考生而言,如何提高学习效率是一个非常重要的问题.那么我们应该如何提高学习效率呢?·······1.为自己制定适合自己的学习计划.连续长时间的学习很容易使考生们产生厌倦的情绪,特别是在没有制定计划的情况下长时间学习后看到堆积如山的复习资料会产生畏难情绪.此时我们就要给自己的复习"设限"星期一复习两科,星期二复习另外几科,尽量不要每天都把所有科目都看一遍,也不要看几十分钟这科,看烦了换下一科,这样是极易混淆知识点的,反而影响复习效率.充分

寒假复习计划

一共包括三周,希望能把所有的知识点走一遍. 图论中我需要复习的是网络流,复习方法就是做网络流21题. dp我需要复习的就是yyrresources里面的Ppt. 第一周结束. 字符串是回文,后缀自动机的应用. 数据结构是平衡树,动态数,以及stl的掌握. 第二周结束. 数论需要掌握的就多了...线性筛能筛哪些,欧拉函数莫比乌斯函数. 还有fft,矩阵树定理,分块,2-sat,启发式搜索,斯坦纳树, 第三周结束. 以及计算机和的种种. 原文地址:https://www.cnblogs.com/re

now code——处女座的期末复习

题目描述 快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行复习,考试的起始时间为bi,处女座为了考试可以不吃饭不睡觉,处女座想知道他能否复习完所有的科目(即在每一门考试之前复习完该科目).每一门课的考试时间都为两小时. 输入描述: 第一行一个整数n 第二行n个整数a1,a2,-,an,表示每门课需要复习的时间 第三行n个整数b1,b2,-,bn,表示每门课考试的时间 1<=n<=105 0<=ai<=109 0<=bi<=109 输出描述: 如