c# 三种常见的委托

  参考  《编写高质量代码:改善C#程序的157个建议》 , 尽量使用FCL中的委托声明。

FCL: FrameWork Class Library

 三种常用:Action、Func、Predicate

小例子:

1.Action :无返回值

    private void AddAction(int a, int b)
    {
        Console.WriteLine(a + b);
    }
    static void Main(string[] args)
    {
        TestCSharpClass myTest = new TestCSharpClass();
        Action<int, int> testAction = myTest.AddAction;
        testAction(1, 2);
    }

2.Func<T1,T2....,out Tn>:有返回值,

    private int AddFuncTest(int a, int b)
    {
        return a + b;
    }
    static void Main(string[] args)
    {
        TestCSharpClass myTest = new TestCSharpClass();
        Func<int, int, int> funcTest = myTest.AddFuncTest;
        Console.WriteLine(funcTest(1,2));
    }

3.Predicate<T>  返回bool值。 一个参数。  在查询接口中比较有用

    private class PreTestClass
    {
        private int a;
        private int b;
        public PreTestClass(int a0, int b0)
        {
            a = a0;
            b = b0;
        }
        public bool TestBool(int ccc)
        {
            if (a + b >= ccc)
            {
                return true;
            }
            return false;
        }
    }
    static void Main(string[] args)
    {
        PreTestClass testClass = new PreTestClass(1, 2);
        Predicate<int> testPredicate = testClass.TestBool;
        Console.WriteLine(testPredicate(4));
    }
时间: 2024-07-30 10:17:16

c# 三种常见的委托的相关文章

深入学习jQuery的三种常见动画效果

× 目录 [1]显隐效果 [2]高度变化 [3]淡入淡出 前面的话 动画效果是jQuery吸引人的地方.通过jQuery的动画方法,能够轻松地为网页添加视觉效果,给用户一种全新的体验.jQuery动画是一个大的系列,本文将详细介绍jQuery的三种常见动画效果——显隐效果.高度变化及淡入淡出 显隐 在CSS中,总结过实现元素显隐的9种思路.而jQuery中的show()和hide()方法是通过改变display属性来实现元素显隐效果,它们是jQuery中最基本的动画方法 [hide()] hid

ASP.NET后台调用前台JS函数的三种常见方法

第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun();"); 此方法只能在Onload中或者类似于onload的初始化过程中添加才有效.并且是先执行脚本函数,同时无法改变执行顺序. 第二种:使用Response.Write方法进行调用 例如,像我们经常会使用到的Response.Write("<scripttype='text/ja

Android应用开发中三种常见的图片压缩方法

Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法 private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里

入网认证三种常见方式介绍

入网认证是一个用户接入一个网络后第一个接触的功能,尤其是在无线网络下,现在几乎找不到无需认证即可接入的网络了. 常见的入网认证技术主要有三种:802.1X.MAB.WebAuth,本文将简单介绍这几种技术的实现原理及应用场景. 802.1X 802.1x协议是基于Client/Server的访问控制和认证协议.它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN.在获得交换机或LAN提供的各种业务之前,802.1x对连接到交换机端口上的用户/设备进行认证.在认

iOS:三种常见计时器(NSTimer、CADisplayLink、dispatch_source_t)的使用

一.介绍 在iOS中,计时器是比较常用的,用于统计累加数据或者倒计时等,例如手机号获取验证码.计时器大概有那么三种,分别是:NSTimer.CADisplayLink.dispatch_source_t 二.使用 @property (strong,nonatomic)NSTimer *timer; @property (strong,nonatomic)CADisplayLink *displaylinkTimer; @property (strong,nonatomic)dispatch_s

Java中三种常见的注释(注解) Annotation

Java为我们提供了三种Annotation方便我们开发. 1 Override-函数覆写注解 如果我们想覆写Object的toString()方法,请看下面的代码: 1 class AnnotationDemo 2 { 3 private String info; 4 public AnnotationDemo(String info) 5 { 6 this.info = info; 7 } 8 9 public String tostring() 10 { 11 return "info的值

[总结] 三种常见的区间贪心问题

一.线段覆盖 n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两不相交 右端点排序(<)兼顾左端点(>),再从左到右遇到不相交的就选 1 sort(he+1,he+n+1,cmp); 2 int tot=0,now=-1000; 3 for(int i=1; i<=n; i++) { 4 if(he[i].l>=now) now=he[i].r,tot++; 5 } 6 printf("%d", tot); 二.区间选点 n个闭区间[ai,bi],选择

java中三种常见内存溢出错误的处理方法

更多 10 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识.jvm管理的内存大致包括三种不同类型的内存区 域:Permanent Generation space(永久保存区域).Heap space(堆区域).Java Stacks(Java栈).其中永久保存区域主要

[转] PHP在不同页面之间传值的三种常见方式

转自: http://my.oschina.net/jiec/blog/196153 一. POST传值 post传值是用于html的<form>表单跳转的方法,很方便使用.例如: <html> <form action='' method=''> <input type='text' name='name1'> <input type='hidden' name='name2' value='value'> <input type='su