• 工作日志20081013(C#3.x相关)


    1.LINQ是C#3中最闪亮的部分,扩展方法、lambda表达式、匿名类型等新的语法基本上都是围绕着为LINQ服务而诞生的。搞清楚这些语法对我们熟悉和掌握LINQ非常有帮助。其中,lambda表达式其实就是匿名的delegate。自己写了一个很小的demo,用来体现普通代理、匿名方法代理以及lambda表达式之间的关系。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using EagleFish.CommonLib;
     6 
     7 namespace CommonConsoleProject
     8 {
     9     delegate TResult GenericDelegateFunc<TArg, TResult>(TArg arg);
    10 
    11     class Program
    12     {
    13         public static bool SomeMethod(int _arg)
    14         {
    15             return _arg > 0;
    16         }
    17 
    18         static void Main(string[] args)
    19         {
    20             GenericDelegateFunc<intbool> func = new GenericDelegateFunc<intbool>(SomeMethod);
    21             
    22             //the use of Anonymous method, from C#2.0
    23             GenericDelegateFunc<intbool> funcUseAnonymousMethod = delegate(int arg)
    24             {
    25                 return arg > 0;
    26             };
    27 
    28             //the use of Anonymous delegate(lambda expression),from C# 3.0
    29             GenericDelegateFunc<intbool> funcUseAnonymousDele = x => {
    30                 Console.WriteLine("Now in the body of a lambda expression");
    31                 return x > 0;
    32             };
    33 
    34             
    35             Console.WriteLine(func(3));
    36             Console.WriteLine(funcUseAnonymousMethod(5));
    37             Console.WriteLine(funcUseAnonymousDele(-6));
    38 
    39             Console.Read();
    40         }
    41     }
    42 }

     由于C# 3的这些新特性都是对C#编译器的改进,并不涉及对IL的修改,所以有心的同学可以通过ILDasm看到这些代理的实现方式。

  • 相关阅读:
    C++异常第二篇---C++标准库异常类exception的使用
    C++异常(exception)第一篇--综合讲解
    libconfig第二篇----两个小例子
    libconfig第一篇———使用指南
    log4cxx第三篇----使用多个logger
    kafka第五篇
    kafka第四篇--快速入门(如何使用kafka)
    UVA 455(最小周期)
    UVA1584(环状序列)
    UVA1583(最小生成元)
  • 原文地址:https://www.cnblogs.com/xingyukun/p/1310127.html
Copyright © 2020-2023  润新知