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

转载于:https://www.cnblogs.com/lanchong/archive/2011/12/06/2278318.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值