Amosapientiam

備忘録

C#/.net

C#で型安全なBuilderパターン

Builderパターン とは、オブジェクト生成に用いられるデザインパターンです。必要な引数のみをメソッドチェーンで渡してオブジェクトを生成し、コンストラクタが多くの引数を取り、また省略可能な引数が多いときに有効とされています。 今までにさまざまな言…

LINQ遅くなさそう

注意 きちんとしたテストをしようと思ったのですが、途中でめんどくさくなりました。 条件を揃えたりILを読んだりしてないので余り意味はないかもしれませんが、結果だけここにおいときます。 結論 きちんとわかったこと とくにないです なんとなく思ったこ…

C#でC++のcinっぽいの

作った。 class cin { private static Queue<string> tokens; static cin () { string line; tokens = new Queue<string> (); while ((line = Console.ReadLine ()) != null) { foreach (var token in line.Split (' ')) { tokens.Enqueue (token); } } } public static impl</string></string>…

【C#】メモ化再帰の抽象化

C#を真面目に勉強しようと思い、kekyoさんの Final LINQ Extensions を読んでしょっぱなから衝撃を受けた。 C#ってこんなに簡単に無限列が書けるんだ! イテレータと無限列 たとえば0の無限列のイテレータは以下の通り。 public static IEnumerable<int> Infinity</int>…