阅读导航

委托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. Linux下GDB调试

    GDB 是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行 序列,形成脚本.UNIX 下的软件全是命令行的,这给程序开发提供了极大的便利,命令行 软件的优势在于, 他们可以非常容 ...

  2. CSS实现完美垂直居中

    之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看上去比较舒服,而且实现的方法也不少,不一定要拘泥于和 tab ...

  3. JS-Number

    Number 是对原始数据的封装 语法: var myNum=new Number(value);//返回一个新创建的 Number 对象 var myNum=Number(value);//把自己的 ...

  4. Bomb

    Description The counter-terrorists found a time bomb in the dust. But this time the terrorists impro ...

  5. ArcGIS Server 10 Java 版的Rest服务手动配置方法

    Java版的Manager中发布的服务默认只发布了该服务的SOAP接口,而REST接口需要用户在信息服务器,如Tomcat. Apache.WebLogic等中手工配置.由于在Java版的Server ...

  6. 优质IT资源分享社区www.itziyuan.top

    你好,我是“优质IT资源分享社区(www.itziyuan.top)”的建设者,同时也是一名普通的IT的热爱者. 首先,我介绍一下网站所收录的教程分类:   基础编程语言: C,C++,C#,Java ...

  7. easyUI datagraid的列排序

    在给datagraid做多列排序时请注意: 首先,做的是后台排序,那么需要设置: remoteSort:'true', 然后,不要添加 multiSort:'true',这个是多列一起排序无法实现.. ...

  8. Block循环引用问题研究

    自从苹果在objc中添加Block功能支持以后已经过了很久.目前网上对于Block的使用有很多介绍.不过对于Block的内存管理问题,则是众说纷纭.再加上objc开始使用ARC以后,对于Block的内 ...

  9. 通过inflate获取布局,设置layoutparams无效

    给ll——addtiem当设置layoutparams无效时,试着修改上一个布局的属性

  10. (转)EntityFramework之领域驱动设计实践

    EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到EntityObject EntityFramework之领 ...