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;
            }

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

  • 相关阅读:
    Codeforces Round #107 (Div. 1) D Mission Impassable
    Codeforces Round #107 (Div. 1) C Smart Cheater
    Codeforces Round #104 (Div. 1) D Lucky Pair
    Codeforces Round #104 (Div. 1) C Lucky Subsequence
    拓扑排序&&欧拉(回)路
    复习笔记之矩阵快速幂(不定时更新)
    复习笔记之母函数
    树链剖分来一发
    最短路算法略解
    题目记录
  • 原文地址:https://www.cnblogs.com/yayaxxww/p/3519835.html
Copyright © 2011-2022 走看看