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

  • 相关阅读:
    聊聊MySQL的索引吧
    污力满满的技术解读,瞬间印象深刻
    lua语言(1):安装、基本结构、函数、输入输出
    pandas中的那些让人有点懵逼的异常(坑向)
    与分布式相关的面试题
    图解IP基础知识
    Date类
    String 与StringBuffer习题
    Java的常用类 String
    线程练习题
  • 原文地址:https://www.cnblogs.com/lanchong/p/2278318.html
Copyright © 2011-2022 走看看