xiacy

导航

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();
}

 

posted on 2012-05-06 11:01  xiacy  阅读(256)  评论(0编辑  收藏  举报