• 泛型委托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);

  • 相关阅读:
    socket communication between a Java and/or C++ programs (现成的程序)
    java和asp.net之间web Service的创建和调用(2)
    linux下自动启动tomcat
    什么是CPU架构
    Eclipse for Linux on POWER 的安装和使用
    linux开机启动tomcat6
    揭开Socket编程的面纱
    认识错误 武胜
    MySqlCommand, MySqlParameter and "LIKE" with percent symbol zt 武胜
    设置zedgraph鼠标拖拽和局部放大属性 转 武胜
  • 原文地址:https://www.cnblogs.com/lanchong/p/2278318.html
Copyright © 2020-2023  润新知