博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# FUNC 应用

Posted on 2013-01-09 13:18  米粒3  阅读(167)  评论(0编辑  收藏  举报
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FuncDemo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
//类似委托功能
            Func<stringint> test = TsetMothod;

            Console.WriteLine(test(
"123"));

            Func
<stringint> test1 = TsetMothod;


            
//只需要调用这个类就可以减少重复的代码
            CallMethod<string>(test1,"123");

            
//或者采用这种
            CallMethod<string>(new Func<stringint>(TsetMothod), "123");

            CallMethod(
new Func<stringint>(TsetMothod), "123");


            
        }

       
        
public static int TsetMothod(string name)
        {
            
if (string.IsNullOrEmpty(name))
            {
                
return 1;
            }
            
return 0;

        }

        
//改造经常出现类似代码下面

        
//try
        
//{
        ////Do();只有这个方法改变
        //}
        
//catch (System.Exception ex)
        
//{
        
//    //Log(e);
        
//}
        
//finally
        
//{
        ////DoOther();
        //}

        
//
        public static void CallMethod<T>(Func<T,int> func,T item)
        {
            
try
            {
               
int i= func(item);
               Console.WriteLine(i);
            }
            
catch(Exception e)
            {

            }
            
finally
            {

            }
        }


    }
}

FUNC示例