zoukankan      html  css  js  c++  java
  • 泛型委托Func<string,string>()

    今天在参看别人的博客代码是,发现Func<string,string>()代码,以前没有看见过。特此记录下来。

    HandlerItem(exchangeValues, key, StringHandlerHelper.Change);

    //在以上语句中,直接传递方法名。

    private void HandlerItem(RouteValueDictionary values, string key, Func<string, string> handler)
    {
        if (!values.ContainsKey(key)) return;

        var v = values[key];
        if (!(v is string)) return;

        values[key] = handler(v as string);

       //具体的参数传递,方法调用执行,返回值的赋值,在    values[key] = handler(v as string);   语句中执行。
    }

    public static string Change(string s)
    {
        StringBuilder sb = new StringBuilder();
        int index = 0;

        foreach (var c in s)
        {
            if (c >= 'A' && c <= 'Z')   //c等于大写字母时,加入'-',然后加入小写的c。
            {
                if (index > 0)
                    sb.Append(type);
                sb.Append(char.ToLower(c));
            }
            else if (c == type)    //c等于'-'时,加入'--'。
            {
                sb.Append(type);
                sb.Append(type);
            }
            else                   //只加入字母c。
            {
                sb.Append(c);
            }
            index++;
        }
        return sb.ToString();
    }

    // 摘要:
    //     封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。
    //
    // 参数:
    //   arg:
    //     此委托封装的方法的参数。
    //
    // 类型参数:
    //   T:
    //     此委托封装的方法的参数类型。
    //
    //   TResult:
    //     此委托封装的方法的返回值类型。
    //
    // 返回结果:
    //     此委托封装的方法的返回值。
    [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
    public delegate TResult Func<in T, out TResult>(T arg);

  • 相关阅读:
    小橙书阅读指南(三)——插入排序
    小橙书阅读指南(二)——选择排序
    小橙书阅读指南(一)——二分查找法
    30分钟带你了解Docker
    消息队列之Kafka——从架构技术重新理解Kafka
    【Mongodb】开启慢查询
    【Azure SQL】数据库性能分析
    【MacBook】常用命令 && 软件安装
    【基准测试】BenchmarkDotNet介绍
    【设计模式】抽象工厂模式
  • 原文地址:https://www.cnblogs.com/lanchong/p/2278318.html
Copyright © 2011-2022 走看看