C# 匿名方法 1027

 class Program {
        static void Main(string[] args) {
            SorAndShowFiles("Sorted by name", delegate(FileInfo f1, FileInfo f2) {
                return f1.Name.CompareTo(f2.Name);
            }
                );
            Console.ReadKey();
        }
        delegate void SampleDelegate(string x);
        public static void CandidateAction(string x) {

            Console.WriteLine("CandidateAction");
        }
        public static void SorAndShowFiles(string title, Comparison<FileInfo> sortOder) {
            FileInfo[] files = new DirectoryInfo(@"F:\").GetFiles();
            Array.Sort(files, sortOder);
            Console.WriteLine(title);
            foreach (FileInfo file in files) {
                Console.WriteLine("Name:{0}   Length:{1} bytes", file.Name, file.Length);
            }
        }
        //
    }

  ///刚开始研究匿名方法和Lambda表达式,试着写了一个例子

这段代码在开始的时候初始化了一个字符串列表(string list),然后通过列表的FindAll方法来查找以“sunny”起始的字符串,最后将所查找到的所有结果输出。

List<string> names = new List<string>();
            names.Add("Sunny Chen");
            names.Add("Sunny  Wang");
            names.Add("DDDD Crystal");
            //第一个阶段 匿名方法
            List<string> found = names.FindAll(new Predicate<string>(delegate(string name) {
                return name.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase);
            }));
            //方式二 匿名方法
            List<string> found2 = names.FindAll(delegate(string name) {
                return name.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase);
            });

            //方式三 Lambda表达式
            List<string> found3=names.FindAll(x=>(x.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase)));

            if (found!=null) {
                foreach (string  item in found) {
                    Console.WriteLine(item);
                }
            }
            Console.ReadKey();

  

时间: 2024-08-02 20:41:04

C# 匿名方法 1027的相关文章

C#基础—匿名方法(Anonymous Mehod)

1.引入匿名方法 早在C# 2.0中就提出了匿名方法,实现了以一种内联的方式声明委托,在此之前,声明委托唯一的方法是"命名方法",虽然 C# 3.0 里有了lambda ,使得写内联代码更加简洁和方法,但是匿名方法依然有他的用处,匿名方法提供了可以忽略参数列表的能力. 2.匿名方法的使用和注意点 什么匿名方法?简单的理解就是没有定义名字的方法(其实编译器还是帮我们生成了一个方法).代码的实现就是把方法的定义和方法的实现内联到了一起. 先看个演示例子: 1 class Program 2

方法组转换和匿名方法

前面的文章介绍过,C# 1.0中出现委托这个核心概念,在C# 2.0中,委托得到了很大的改进.C# 2.0中委托的改进为C# 3.0中的新特性提供了铺垫,当我们了解了匿名方法后,Lambda的学习就会变得相对容易. 下面就看看C# 2.0中委托的改进. 方法组转换 在C# 1.0中,如果要创建一个委托实例,就必须同时指定委托类型和符合委托签名的方法.但是,在C# 2.0中,支持了方法组转换,也就是说我们可以从方法组到一个兼容委托类型的隐式转换.所谓"方法组"(method group)

.net基础扫盲-小例子串委托、匿名方法、lamuda表达式

我把委托理解为:委托是一种方法的格式,当然他也是一种类型. 只要是方法的格式跟委托定义的格式是一样的,那么就可以把该方法附加给该委托.看以下demo 声明委托: <p style="margin:0in;font-family:微软雅黑;font-size:12.0pt"></p><pre name="code" class="csharp">public delegate void Add(int a,int

C#Lambda表达式的理解:谓词方法 匿名方法 使用Lambda

Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式.所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to".Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块. 下面三个方法会帮你会容易理解到Lambda表达式的好处,

匿名方法与Lamda表达式

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 匿名方法与Lamda表达式 { class Program { static void Main(string[] args) { //任何可以使用委托的地方都可以使用匿名方法,匿名方法就是没有名字的方法. //a指向一个匿名方法 Action a

匿名方法

与前面的可空类型是一样的,匿名方法也是C# 2.0里面提出来的. 1 匿名方法 1.1 什么是匿名方法? 顾名思义,就是没有名称的方法,因为没有名称,匿名方法只能在函数定义(匿名方法是把方法的实现和定义嵌套在了一起)的时候被调用,在其他任何情况下都不能被调用.对于编译器来说,匿名方法并不是没有名字的,编译器在编译匿名方法时会为其生成一个方法名,下面可以通过IL代码来证明. 1 namespace 匿名方法 2 { 3 class Program 4 { 5 private delegate vo

C# 匿名委托、匿名方法、匿名对象、Lambda表达式

一.匿名类型可通过使用 new 运算符和对象初始值创建匿名类型.示例:var v = new { Name = "Micro", Message = "Hello" };var v = new[] {     new { Name = "Micro", Message = "Hello" },     new { Name = "Soft", Message = "Wold!" }};匿

从委托、匿名方法到Lambda

前面讲过委托的知识,本次由委托过渡到Lambda表达式,更易于理解. 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int[] intA = { 1, 3, 5, 7 }; 6 ProcArray(intA, AddOne); 7 foreach (int i in intA) 8 { 9 Console.Write(i + " "); 10 } 11 12 Console.ReadKey(); 13 } 14

委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录下来,以备复习使用. 委托: 日常工作中,常常见到委托用在具体的项目中.而且委托使用起来相对来说也是非常简单的,下面列举一个委托实例用以说明如何使用委托,代码如下: class Program { public delegate int CalculateDelegate(int x, int y)