阅读导航

委托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. 转载:分布式系统的CAP理论

    原文转载Hollis原创文章:http://www.hollischuang.com/archives/666 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提 ...

  2. angular中ng-include失效的原因

    使得angular的ng-include指令失效的原因有两个: 例如:在demo.html中的代码<div ng-include = "'demo1.html'">&l ...

  3. thinkphp3.2.3批量执行sql语句(带事务)

    /** * 事务封装方法 * @access public 将此方法放入框架model.class.php中 * @param array $sqls 要执行的sql数组或语句 * @param ar ...

  4. cherry Tree的严重漏洞

    Cherry Tree程序员笔记软件存在严重漏洞 如果你用Cherry Tree来保存自己觉得很重要的东西的时候,你应该注意了 显示漏洞的步骤:(不用使用自己使用Cherry Tree保存的文件来做下 ...

  5. Linux图片批处理

    通过imagemagick的convert命令来处理. 将多个图片横向拼接(宽图): convert +append 1.jpg 2.jpg all.jpg #人为指定顺序 convert +appe ...

  6. CabArc to create or extract a cab file

    CabArc n D:\test.cab D:\output\*.* CabArc x D:\test.cab -r -p D:\output\*.*

  7. [spark案例学习] WEB日志分析

    数据准备 数据下载:美国宇航局肯尼迪航天中心WEB日志 我们先来看看数据:首先将日志加载到RDD,并显示出前20行(默认). import sys import os log_file_path =' ...

  8. Django 中 如何使用 settings.py 中的常量

    在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式 程序代码 { ...

  9. 基于VC的声音文件操作(四)

    (五)读取wav的实例 跟据WAVE文件的格式,实现了读取双声道立体声数据的例子如下: BYTE * GetData(Cstring *pString) //获取声音文件数据的函数,pString参数 ...

  10. VIM(四) C语言开发插件设置

    http://blog.csdn.net/guolb57/article/details/7013076