2012-01-01から1年間の記事一覧

[cs] /language 又はビルドペインの詳細設定中にある言語バージョンに関して注意すべきforeachの挙動

このエントリは、2012/08/31現在に、実際に動かした結果に関する考察で有り、それ以上の検証は行ってないのでその点ご了承の程を。 どー言うことなのか VS2010迄は*1、λ内でforeachの要素をキャプチャする際、以下のようなサンプルを書いた場合、直感的では…

VisualStudio 2012にCodeContractsを導入する方法

VS

よーやく導入したは良いけど、結構どころで無く表題に詰まった。 コード分析≠Code Contracts エディション間の比較とか見てて、これを完全に勘違いしていたのがそもそもの原因。 あれは、コーディング規約とかの分析でCodeCopっぽいものだった。*1なので、あ…

delegateに代入された特定条件を満たしたラムダに関する一考察。

C#

ある方に相談したら、何となくわかってきたので、後でまた忘れたときのために。 で、満たすべき条件とは 閉包*1を使ってない と言う点、この条件が意味するところは、ラムダ式をStatic methodとしてコンパイル可能であるという点。逆に、閉包を使ってないの…

反変性と共変性

ここ数日、こいつで引っかかったけど、ようやく理解できたので備忘録。 コトの発端 こんなコードを書いていた。 interface ISample<in T> { void InvokeAction(Action<T> action); } そしたら、コンパイラに怒られた。 無効な分散: 型パラメーター 'T' は、'ConsoleAp</t></in>…