using System; using System.Collections.Generic; namespace ConsoleApplication2 { public delegate int DelegateOne(T a, T b); internal class Program { pu... ...
分类:
其他好文 时间:
2017-10-03 20:38:11
阅读次数:
244
Action<T> 无返回值的系统泛型委托 namespace ConsoleApp1 { public class UserInfo { public int Id { get; set; } public string Name { get; set; } public int Age { ge ...
在上一篇文章中,介绍了什么是泛型,以及泛型和非泛型的区别,这篇文章主要讲一些泛型的高级用法,泛型方法,泛型泛型接口和泛型委托,协变和逆变泛型类型参数和约束性,泛型的高级用法在平时的业务中用的不多,多用于封装高级方法和一些底层封装,前几天读了一篇文章,如何选择网络上的技术文章,因为现在关于技术的文章可 ...
分类:
其他好文 时间:
2017-08-13 12:20:56
阅读次数:
265
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApp1{ class Program { ...
分类:
编程语言 时间:
2017-07-14 23:54:53
阅读次数:
173
一. 泛型委托 所谓的泛型委托,即自定义委托的参数可以用泛型约束,同时内置委托Func和Action本身就是泛型委托。 将上一个章节中的Calculator类中的方法用自定义泛型委托重新实现一下。 二. 内置委托 .Net FrameWork提供两个支持泛型的内置委托,分别是Action和Func, ...
分类:
Web程序 时间:
2017-06-11 17:25:49
阅读次数:
237
逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解析逆变与协变。 变的概念 我们都知道.Net里或者说在OO的世界里,可以安全地把子类的引用赋给父类引 ...
分类:
其他好文 时间:
2017-05-31 22:20:19
阅读次数:
356
一、Action<T>和Func<T>委托 除了上篇描述的为每个参数和返回类型定义一个新委托类型之外,还可以使用Action<T>和Func<T>委托。通过T的标示,我们可以知道这是两个泛型委托。 二、Action<T> 其中Action<T>委托表示引用一个void返回类型的方法。这个委托存在不同 ...
前言在C#我们可以自定义委托,但是C#为什么还要内置泛型委托呢?因为我们常常要使用委托,如果系统内置了一些你可能会用到的委托,那么就省去了定义委托,然后实例化委托的步骤,这样一来既使代码看起来简洁而干净又能提高程序员的开发速度,何乐不为呢!通过本文可以让你复习..
分类:
其他好文 时间:
2017-04-24 22:50:00
阅读次数:
245
泛型委托的基本语法格式如下: delegate ReturnType DelegateName<Type>(Type x, Type y); 通过实践发现,泛型委托可以大大减少代码量,下面举个例子 如:分别使用四则运算来计算一系列算式,然后汇总计算结果。 一开始我也是很笨的定义了四个四则运算的方法。 ...
委托基本概念:可以把一个方法作为一个参数传给另一个方法 声明: 方法前加 delegate 关键字 列子: using System; using System.Collections; using System.Collections.Generic; namespace Dome { class ...
分类:
其他好文 时间:
2017-04-03 01:02:56
阅读次数:
181