C#

method logging with transparent proxy

http://d.hatena.ne.jp/ladybug/20101223/p1 反応が遅すぎて申し訳ない。source code を読んでみると logging したい instance を SqueezeProxy.Install() で SqueezeProxy の instance で wrap してる、というのが一番の仕掛けなのかな。多分 ContextBoundO…

Bind.cs

https://github.com/januswel/cslib/blob/master/Utility/Data/Bind.cs C++ でいうところの std::bind1st と std::bind2nd 。なんだけど多分というか十中八九 C# 2.0 以前じゃないとありがたみがない。 lambda expression 使えるなら使ったほうがいいという…

FixedQueue.cs

https://github.com/januswel/cslib/blob/master/Utility/Data/FixedQueue.cs 長さ固定の queue 。既存の Queue は Enqueue() してくとどんどこ長さが伸びるので固定してみた。効率とか考えてないよ ! 以下は適当すぎる sample 。 /* * Program.cs * A sampl…

RingBuffer.cs

https://github.com/januswel/cslib/blob/master/Utility/Data/RingBuffer.cs もどき。失敗点は以下の 2 つ。 Remove() と CopyTo() があまりに面倒で実装してないので ICollection<> からこれらを継承してる意味が無い。 ちまたの ring buffer の説明を見て…

Method logger is just a dream now

http://d.hatena.ne.jp/janus_wel/20101212/1292157491 の comment で method を横取りするなら System.Dynamic.DynamicObject をいじるといいかもね ! という情報を頂いたのでこうですかわかりません><状態。ありがとうございます > id:ladybug さん。 ht…

There is no such thing as C# method logger

そういや C# で AOP 的なことできるんじゃろうか、と思って調べてみた結果非常に残念な結果になったというハナシ。 AOP 的とかいってるけど身も蓋もない言い方をすると method への message を横取りして log をはくにはどうすれば的な。とりあえず以下の pa…

C# constraints on type parameters

まず C# library 用 git repository を作った。 https://github.com/januswel/cslib そして http://d.hatena.ne.jp/janus_wel/20101129/1291047346 で書いてた Pair<> を突っ込んでみた。 https://github.com/januswel/cslib/blob/master/Utility/Data/Pair.…

C# user-defined class as Dictionary<> key

自分で作った class を System.Collections.Generic.Dictionary<TKey, TValue> の TKey に使いたい、かつその class の特性として 2 つの objcect が同値かどうかが参照等価でない場合以下の手順を踏まないといけない。 System.IEquatable<T> から派生させて public bool Equa</t></tkey,>…

Generics instantiation

Generics を実体化するには < と > の間に型を書いてやりゃいいわけだがこれを別名として定義したい、つまり C++ でいう typedef をしたいんだがそんな keyword は C# にはない。おれレバー入れ大ピンチ。じゃなくて using で alias を定義する。 using Inst…

C# inheritance keywords ( and comparison with those of C++ )

継承関係の keyword まとめ。 abstract 「抽象」という意味を付加する keyword 。 C++ でいう「純粋仮想」という概念にあたる。あたるけどそもそも「純粋仮想」の意味がアレだし code level でも "virtual" と末尾の "= 0" で表現されるから直感的じゃないん…

C++ template and C# Generics

comment でいいこと教えてもらったので修正。 id:matarillo さんありがとう。C# いじってて Generics てのを知ったんだけど要は C++ の template だろーみたいな感じで触ってたら見事に違うことに気がついたのでちょいとまとめ。いやまぁ C++/CLI ていう文脈…

interface in C#

C# の interface は Java の interface と同じようなもんらしいんだがそもそも Java をまともに書いたことがないのにその理解はどうなんだ。まぁ C++ の純粋仮想 class みたいなもんだという理解でいいか的な。で、 C# の場合 interface のみで class librar…