読者です 読者をやめる 読者になる 読者になる

C# 3.0 Supplemental Library: Achiral

.NET

C# 3.0 用に今までだらだらと書いてきた Extension Methods と型推論用 Generic Methods を軽くまとめてみた.興味がある方はご自由にどうぞ.
型推論用 Generic Methods は Achiral.Make という static class に集約.続きは IntelliSense とソースコードで.
Extension Methods を使うには以下の using 文を追加すれば OK.

using Achiral.Extension;

使用例

mscorlib.dll にある全ての型の継承ツリーを表示.

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

using Achiral;
using Achiral.Extension;

static class Program
{
    static void Main(string[] args)
    {
        var asm = typeof(int).Assembly;

        var children = asm.GetTypes().Where(type => type.BaseType != null)
                                     .ToLookup(type => type.BaseType, type => type);

        var q = Make.Sequence(typeof(object))
                    .CascadeDepthFirst(type => children[type], (Type, NestLevel) => new { Type, NestLevel });

        q.ConsoleWriteLine(item => new string(' ', 3 * item.NestLevel) + item.Type.FullName);
    }
}

参考