C#

fatalなmistake

C#でスレッドの制御がどうもうまく動かないと思っていたら,どうやら致命的な勘違いをしていたようだ. Thread.joinは「コールした先のスレッドが終了するまで現状のスレッドを待機する」メソッドのはずなのだが,「どれか一つのスレッドが終了するまでコー…

Debug.Assertの遅延評価

以前にC#によるDesign by Contractのやり方を紹介した.簡単におさらいしておくと以下のように実装する. using System.Diagnostics public class Foo { public void Bar(object baz) { Invalid() //不変条件 //事前条件 Debug.Assert(baz != null); //処理 …

インターフェイスの継承

C#

前回のエントリの引きはとりあえず置いといて,全然別のネタだったりする. とりあえずネタ元のソースから.*1 using System; namespace Sample { //継承元IF public interface IFoo { void Foo(); void FooVar(); } //継承先IF public interface IVar : IFo…

.Net FrameworkSDK入れてみたお

仕事で使ってるからC#のネタが増えると思うんだが,エントリを書いてる自宅にコンパイラすらないのはひどく問題だと思うので,.Net FrameworkSDKを入れてみた.でも使うのは後日だね. とりあえず検証したいネタは,最近流行?(amachang氏及びDan氏方面)の遅…

Design By Contract

C#で契約による設計はSystem.DiagnosticsネームスペースのDebug.Assertメソッドを使用して行うようだ. 例えば事前条件と事後条件のチェックは以下のように行う. using System.Diagnostics public class Foo { public void Bar(object baz) { //事前条件 De…