5.4.2 匿名方法的返回值
从匿名方法放回一个值
Predicate<int> isEven = delegate(int n) { return n % 2 == 0; }; Console.WriteLine(isEven(1)); Console.WriteLine(isEven(2)); Console.WriteLine(isEven(3)); Console.WriteLine(isEven(4)); Console.WriteLine(isEven(5)); Console.ReadKey();
用匿名方法简便的排序文件
static void SortAndShowFiles(string titile, Comparison<FileInfo> sortOrder) { try { FileInfo[] files = new DirectoryInfo(@"C:\").GetFiles(); Array.Sort(files, sortOrder); Console.WriteLine(titile); foreach (FileInfo file in files) { Console.WriteLine("{0}({1} KB)", file.Name, ((decimal)file.Length/1024).ToString("F2")); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } static void Main(string[] args) { Console.WriteLine("请选择排序方式:0-名称;1-大小,2-创建时间;3-修改时间(如果输入除这四个值外,均默认视为输入了0):"); int sorted = 0; int.TryParse(Console.ReadLine(), out sorted); switch (sorted) { case 0: SortAndShowFiles("根据名称排序", delegate(FileInfo f1, FileInfo f2) { return f1.Name.CompareTo(f2.Name); }); break; case 1: SortAndShowFiles("根据大小排序", delegate(FileInfo f1, FileInfo f2) { return f1.Length.CompareTo(f2.Length); }); break; case 2: SortAndShowFiles("根据创建时间排序", delegate(FileInfo f1, FileInfo f2) { return f1.CreationTime.CompareTo(f2.CreationTime); }); break; case 3: SortAndShowFiles("根据修改时间排序", delegate(FileInfo f1, FileInfo f2) { return f1.LastWriteTime.CompareTo(f2.LastWriteTime); }); break; default: Console.WriteLine("出现未知错误!"); break; } Console.ReadKey(); }