`
380071587
  • 浏览: 447607 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# Func<T,TResult>

 
阅读更多
using System;

namespace FuncDemo
{ 
    internal class Program
    {
        private static void Main()
        {
            //类似委托功能
            Func<InputArgs, Result> func = TsetFunction;
            Console.WriteLine("第一种方式:");
            Console.WriteLine(func(new InputArgs("zhangqs008", "123456")));

            Console.WriteLine("=============================================");

            Console.WriteLine("第二种方式:");
            CallMethod(func, new InputArgs("zhangqs008", "1234567")); //或者 
            CallMethod(TsetFunction, new InputArgs("zhangqs008", "1234567"));

            Console.Read();
        }


        public static Result TsetFunction(InputArgs input)
        {
            Result result = new Result();
            result.Flag = String.Compare("zhangqs008", input.UserName, StringComparison.OrdinalIgnoreCase) == 0 &
                String.Compare("123456", input.Password, StringComparison.OrdinalIgnoreCase) == 0;
            result.Msg = "当前调用者:" + input.UserName;
            return result;
        }

        public static void CallMethod<T>(Func<T, Result> func, T item)
        {
            Result result = func(item);
            Console.WriteLine(result.ToString()); 
        }
        /// <summary>
        /// 方法参数
        /// </summary>
        public class InputArgs
        {
            public InputArgs(string userName, string password)
            {
                UserName = userName;
                Password = password;
            }

            public string UserName { get; set; }
            public string Password { get; set; }
        }

        /// <summary>
        /// 方法结果
        /// </summary>
        public class Result
        {
            public string Msg { get; set; }
            public bool Flag { get; set; }
            public override string ToString()
            {
                return string.Format("Flag:{0},Msg:{1}", Flag, Msg);
            }
        }

    }
}

分享到:
评论

相关推荐

    c# 省市区集成模块【支持延迟加载异步回调】

    void ActivationEventBeginInvoke(Func&lt;int&gt; id,Action&lt;IEnumerable&lt;T&gt;&gt; TValue = null, Action&lt;IAsyncResult&gt; Ting=null); IEnumerable&lt;T&gt; GetChildList(); void GetChildList(Action&lt;IEnumerable&lt;T&gt;&gt; TValue)...

    Discuz!5.0 GBK补丁包

    &lt;br/&gt;&lt;br/&gt;\admin 目录&lt;br/&gt;\admin\database.inc.php&lt;br/&gt;\admin\forums....func.php&lt;br/&gt;\include\category.inc.php&lt;br/&gt;\include\common.inc.php&lt;br/&gt;\include\cron.func.php&lt;br/&gt;\include\discuzcode.func.php&lt;br/&gt;\...

    Discuz! 5.0 patch 20060911

    version.php&lt;br/&gt;\my.php&lt;br/&gt;\pm.php&lt;br/&gt;\search.php&lt;br/&gt;\stats.php&lt;br/&gt;\...func.php&lt;br/&gt;\include\common.inc.php&lt;br/&gt;\include\common.js&lt;br/&gt;\include\discuzcode.func.php&lt;br/&gt;\include\editor.func.php&lt;br/&gt;\...

    C#编程-提高篇

    这个方法可以从Func&lt;T1 , T2 , TResult&gt;委托中引用,其中T1 和T2 的类型相同:Func&lt;T , T , bool&gt;。 给Sort&lt;T&gt;方法指定下述签名: public static void Sort&lt;T&gt;(IList&lt;T&gt; sortArray, Func&lt;T, T, bool&gt; comparsion...

    反射在ef中的应用.pdf

    #region 3.2 根据指定条件 修改 +int ModifyBy(Expression&lt;Func&lt;T, bool&gt;&gt; whereLambda) /// &lt;summary&gt; /// 2.3 根据指定条件 修改 /// &lt;/summary&gt; /// &lt;param name="whereLambda"&gt;条件表达式&lt;/param&gt; /// ...

    万年历的代码

    &lt;div class='top_bar_text' id='365riliUserName'&gt;&lt;/div&gt; &lt;div class='top_bar_text' id='bd_login'&gt;登录&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id='cal_down'&gt; &lt;div id='cal_downleft'&gt; &lt;div id='mainCal'&gt;&lt;/...

    【JavaScript源代码】Vue3中ref与toRef的区别浅析.docx

     ref就是复制 复制是不会影响原始数据的 &lt;template&gt; &lt;div&gt; &lt;div&gt; &lt;div&gt;{{stateObj}}&lt;/div&gt; &lt;button @click="func1"&gt;按钮&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; import {ref} from 'vue' export ...

    YC++编译器网页浏览器

    增加执行C/C++函数的HTML标记&lt;%func()%&gt;。在C/C++函数中执行printf后的输出文本可自动插入到HTML中。&lt;br/&gt;15. 用户以前编写的C/C++程序,稍加修改便可嵌入到web页面中。&lt;br/&gt;16. 自动检测堆栈是否溢出,资源是否...

    详解FuncT与ActionT区别

    Func&lt;T&gt;、Action&lt;T&gt; 的区别于说明 一、Func Func是一个.Net内置的委托。 Func&lt;Result&gt;,Func&lt;T1&gt;是一个.Net内置的泛型委托。 Func&lt;TResult&gt; Func&lt;T&gt; Func&lt;T1&gt; Func&lt;T1&gt; Func&lt;T1&gt; 它有5种形式,只是参数个数不同;第...

    visual C# 2010

    .NET Framework也可对某些现有泛型接口和委托带来不同的支持,包括IEnumerable&lt;(Of &lt;(T&gt;)&gt;)接口和Func&lt;(Of &lt;(TResult&gt;)&gt;) 与 Action&lt;(Of &lt;(T&gt;)&gt;) 委托。 新的命令行选项 /langversion命令行选项可让编译器接受只在...

    net Lamada表达式转匿名对象

    将Expression&lt;Func&lt;T&gt;&gt;表达式转为Expression&lt;Func&lt;T, object&gt;&gt;

    友情链接系统 (.Net2.0 C#)

    XML,Ajax,C# 编写.&lt;br&gt;&lt;br&gt;admin 是管理后台&lt;br&gt;&lt;br&gt;func脚本文件 Ajax&lt;br&gt;&lt;br&gt;Ajfunc 是处理Ajax的C#代码&lt;br&gt;&lt;br&gt;.NET2.0 环境.&lt;br&gt;

    详解Func&lt;T&gt;与Action&lt;T&gt;区别

    本文主要介绍Func&lt;T&gt;和Action&lt;T&gt;的用法以及他们之间的区别,希望对大家有所帮助

    docs

    记录笔记 ... Func &lt;TResult&gt; 例外 GC 特性最大生成 方法 收集(Int32) CollectionCount(Int32) GetGeneration(对象) GetTotalMemory(布尔) SuppressFinalize(对象) WaitForPendingFinali

    奇异性:用于高性能应用的极快的ioc容器

    启用通用包装器: Func&lt;T&gt; Lazy&lt;T&gt; Expression&lt;Func&gt;&gt; 您可能已经定义了任何其他通用包装器。 馆藏支持: IEnumerable&lt;T&gt; IReadOnlyCollection&lt;T&gt; IReadOnlyList&lt;T&gt; T[] List&lt;T&gt; ICollection&lt;T&gt; IList&lt;T&gt; HashSet&lt;T...

    联想旭日420AXP系统声卡驱动

    %SM56_HDAUDIO_MODEM_INSTALL% = SM56_HDAUDIO_MODEM_INSTALL, HDAUDIO\FUNC_02&VEN_1057&DEV_3055&SUBSYS_10573055&REV_0701 %SM56_HDAUDIO_MODEM_INSTALL% = SM56_HDAUDIO_MODEM_INSTALL, HDAUDIO\FUNC_02&VEN_...

    旭日420AXP系统调制解调器驱动

    %SM56_HDAUDIO_MODEM_INSTALL% = SM56_HDAUDIO_MODEM_INSTALL, HDAUDIO\FUNC_02&VEN_1057&DEV_3055&SUBSYS_10573055&REV_0701 %SM56_HDAUDIO_MODEM_INSTALL% = SM56_HDAUDIO_MODEM_INSTALL, HDAUDIO\FUNC_02&VEN_...

    Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql

    .NET Standard 2.1、.NET 5、.NET 6、.NET 7 版本SQLBuilder,Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql;基于Dapper实现了不同数据库对应的数据仓储Repository;

    c#3.0实现延迟赋值示例

    使用Func&lt;T&gt;,我们轻松实现,看代码: 代码如下:/// &lt;summary&gt;/// LazyExpression/// &lt;/summary&gt;/// &lt;typeparam name=”T”&gt;T&lt;/typeparam&gt;public class LazyExpression&lt;T&gt;{ Func&lt;T&gt; thunk; public Lazy[removed]

    #include

    #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;assert.h&gt; #include &lt;string.h&gt; typedef struct matrix { int row; int col; } matrix; typedef struct minCost { int cost; int mid; } minCost; minCost** ...

Global site tag (gtag.js) - Google Analytics