阅读导航

委托Delegate

泛型

1. 委托Delegate

    • 继承自MulticastDelegate
    • 声明委托定义签名:
      public delegate int DemoDelegate(int num1, int num2);



    • 使用相同签名的方法实例化委托:

      int Sum(int input1, int input2){ return input1 + input1; }
      DemoDelegate demo1 = Sum;
    • 使用匿名方法实例化委托:
      DemoDelegate demo2 = delegate(int input1, int input2)
      {
      return input1 * input2;
      }
    • 使用lambda表达式实例化委托:
      DemoDelegate demo3 = (int input1, int input2) => input1 - input2;
    • 调用方法:
      int resultSum = demo(, );         // result: 30
      int resultMultiply = demo(, ); // result: 200
      int resultMinus = demo(, ); // result: –10

2. 泛型

    • 命名空间: System.Collections.Generic
    • 使用T作为参数放在尖括号中:
      public class DemoGeneric<T>{}
    • 使用List<T>不需要装箱操作和强制类型转换,效率高,编译时检查类型T
    • 约束:
      public class DemoGeneric<T> where T : struct {}    //  类型参数必须为值类型
      public class DemoGeneric<T> where T : class {} // 类型参数必须为引用类型(如类、接口、委托、数组类型)
      public class DemoGeneric<T> where T : new() {} // 类型必须具有无参public构造函数, 与其他约束组合使用必须最后制定
      public class DemoGeneric<T> where T : U {} // 类型参数必须为U提供的参数或派生自U提供的参数
    • 可以是用反射获取泛型类型






[.NET自我学习]Delegate 泛型的更多相关文章

  1. ios学习-delegate、传值、跳转页面

    ios学习-delegate.传值.跳转页面     1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选 ...

  2. C#学习之泛型继承和静态成员

    想要理解这里有必要先将泛型类学习充分.这里讲解的是泛型类继承类的类型和静态成员. 在前面C#学习之泛型中,创建的LinkList<T>类实现了IEnumerable<T>接口. ...

  3. UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)

    :softmax回归 当p(y|x,theta)满足多项式分布,通过GLM对其进行建模就能得到htheta(x)关于theta的函数,将其称为softmax回归. 教程中已经给了cost及gradie ...

  4. java知识体系(自我学习中)

    java自我学习知识体系

  5. Java 理论和实践: 了解泛型 识别和避免学习使用泛型过程中的陷阱

    Brian Goetz (brian@quiotix.com), 首席顾问, Quiotix 简介: JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进.但是,对于初次使用泛 ...

  6. .net学习之泛型、程序集和反射

    一.泛型1.CLR编译时,编译器只为MyList<T>类型产生“泛型版”的IL代码——并不进行泛型的实例化,T在中间只充当占位符.例如:MyList 类型元数据中显示的<T> ...

  7. Java编程思想学习(十一) 泛型

    1.概要 generics enable types (classes and interfaces) to be parameters when defining classes, interfac ...

  8. 学习Swift -- 泛型

    泛型 泛型代码可以让你写出根据自我需求定义.适用于任何类型的,灵活且可重用的函数和类型.它的可以让你避免重复的代码,用一种清晰和抽象的方式来表达代码的意图. 泛型所解决的问题 先来看一个交换两个int ...

  9. Java学习之——泛型

    1.概要 generics enable types (classes and interfaces) to be parameters when defining classes, interfac ...

随机推荐

  1. web测试

    1.验证码在不同浏览器兼容性(兼容测试) 2.登录时间cookie及session

  2. 20145229&20145316《信息安全系统设计基础》实验一 开发环境的熟悉

    实验封面 实验内容 本次实验使用 Redhat Linux 9.0 操作系统环境,安装 ARM-Linux 的开发库及编译器.创建一个新目录,并在其中编写 hello.c 和 Makefile 文件. ...

  3. HTML 学习记录

    <h1>This is a heading </h1> 标题 h后面的数字是字体大小 <p>This is a paragraph.</p>段落 < ...

  4. "i++"和"++i"浅析

    public class a{     public static void main(String[] args){         int k =100;         k++;//k+=,k ...

  5. java jdk动态代理

    在面试的时候面试题里有一道jdk的动态代理是原理,并给一个事例直接写代码出来,现在再整理一下 jdk动态代理主要是想动态在代码中增加一些功能,不影响现有代码,实现动态代理需要做如下几个操作 1.首先必 ...

  6. TCP头部结构

    3.2 TCP头部结构 TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口,目的端端口,管理TCP连接等,本节详细介绍TCP的头部结构,包括固定头部结构和头部选项. 3.2.1 TCP固定 ...

  7. Unity IOC容器的简单应用(转)

    转自:http://blog.csdn.net/wanzhuan2010/article/details/7763280 Unity是Unity是微软patterns& practices组用 ...

  8. cognos制作报表流程

    第一章 创建报表 制作ReportStudio报表,步骤如下图所示: 第二章 添加查询 1.点击中间栏的查询资源管理器,然后点击查询,就可以新建查询.步骤如下图所示: 2.点击查询出现的页面: 3.在 ...

  9. 丹佛机场行李系统Postmortem

    丹佛机场行李系统做Postmortem总结 事情起因是因为丹佛市场承诺进行机场建设,因此此项目问题不可回避,必须完成,合作的双方都是富有经验的公司但是最后依然变成了不可控的项目,经过小组讨论后我们认为 ...

  10. [原创]cocos2dx加载网络图片&异步加载图片

    [动机] 之前看到一款卡牌游戏,当你要看全屏高清卡牌的时候,游戏会单独从网络上下载,本地只存了非高清的,这样可以省点包大小,所以我萌生了实现一个读取网络图片的类. [联想] 之前浏览网页的时候经常看到 ...