zoukankan      html  css  js  c++  java
  • C# 的三种泛型委托

    C# 有三种常用的泛型委托,声明形式如下

    1. Action<T1,T2.T3…>
    2. Fun<T1,T2,T3...Tresult>
    3. Predicate<T>

    第一种委托表示拥有n个参数,无返回值,如:

            static void Main(string[] args)
            {
                Action<string, string> converstation;
                converstation = Conversation;
                converstation.Invoke("路飞","我是要成为海贼王的男人");
                converstation.Invoke("鸣人", "我是要成为火影的男人");
            }
    
            static void Conversation(string name, string word)
            {
                Console.WriteLine(string.Format("{0}:{1}。",name,word));
            }    
    

    第二种委托表示拥有n个参数,返回值为类型为TResult,如:

            static void Main(string[] args)
            {
                Func<string, string,string> converstation;
                converstation = Conversation;
                var word1 = converstation.Invoke("路飞","我是要成为海贼王的男人");
                var word2 = converstation.Invoke("鸣人", "我是要成为火影的男人");
                Console.WriteLine(word1);
                Console.WriteLine(word2);
            }
    
            static string Conversation(string name, string word)
            {
                return string.Format("{0}:{1}。",name,word);
            }    

    第三种表示拥有一个参数,有一个bool返回值,如:

            static void Main(string[] args)
            {
                Predicate<string> isMan;
                isMan = IsMan;
                //var result1 = isMan.Invoke("路飞");
                //var result2 = isMan.Invoke("鸣人");
                Console.WriteLine("路飞是男人吗?");
                string result1 =  isMan.Invoke("路飞") ? "是!": "不是!";
                Console.WriteLine(result1);
                Console.WriteLine("鸣人是男人嘛?");
                string result2 = isMan.Invoke("鸣人") ? "是!" : "不是!";
                Console.WriteLine(result2);
            }
    
            static bool IsMan(string name)
            {
                return false;
            }

    以上就是三种常用的委托了。

  • 相关阅读:
    放大镜功能
    background兼容IE9以下版本
    JSON解析
    vue.js 组件-全局组件和局部组件
    i++ ++i的原子性
    【转】程序员面试笔试宝典
    【转】函数调用栈 格式化操作
    【转】TCP三次握手过程
    一些面试题
    【转】HP(惠普)大中华区总裁孙振耀退休感言
  • 原文地址:https://www.cnblogs.com/yayaxxww/p/3519835.html
Copyright © 2011-2022 走看看