C#
Dictionary リテラルの夢は儚く散った・・・訂正。散ってはいなかった - ぐるぐる~こんな風に書けますよ (・∀・) var dict = new Dictionary<string, int> { { "Hoge", 1 }, { "Fuga", 2 }, { "Piyo", 3 } }; 方法 : コレクション初期化子を使用してディクショナリを初期</string,>…
C#と諸々 パブリックプロパティ (もしくはパブリックフィールド) の善悪GUI 周りと DB 周りの他に、ユニットテストにも関わってくるね。 ユニットテストでも恩恵を得られるけれど、たまに一工夫必要になる。 こんなクラスと public sealed class Hoge { publ…
採用試験に挑戦 - 気楽に諸々 ↑検証はあえて投稿後にやったけど、案の定間違ってたw 僕がホントにやりたかったことはこっちのコード class Position { public int X { get; set; } public int Y { get; set; } public void FitToGrid(int gridPitch) { this…
採用面接で使った課題 テキストエディタと翻訳ツール (笑) 片手にやってみた! ケド、そもそも問題を理解できてないかも…! class Position { public int X { get; set; } public int Y { get; set; } public void FitToGrid(int gridPitch) { this.X = this…
Marshal.AllocHGlobal でアンマネージメモリに大容量データを確保したら GC.AddMemoryPressure で GC に報告してやる必要あるのかな…?
画像データを扱うプログラム作ってるんだけれど、処理の過程で 100 MB とかに膨れたり、別フォーマットに変換することで新たに 50 MB のデータが作成されたり…。 で、これを何度か繰り返すと OutOfMemoryException が発生するお…。 たぶん、GC で回収されな…
アンマネージメモリと GC - 気楽に諸々 を検証してみた! ・マネージメモリ確保 static void Main() { const int size = 200 * 1024 * 1024; byte[] managedBinary = new byte[size]; for (int i = 0; i < size; i++) { managedBinary[i] = 0; } GC.Collect(…
Microsoft Visual C# 2008 コンパイラを作成できなかったため、プロジェクト 'ConsoleApplication1' を開けませんでした。 '{74946829-37A0-11D2-A273-00C04F8EF4FF}' の QueryService が失敗しました。 // 追記 (17:20) とりあえず、"別のユーザーとして実…
Introduction to Code Contracts [Melitta Andersen] – BCL Team Blog
System.Timers.Timer は内部的に System.Threading.Timer を利用している。 どちらも、タイマーに登録したハンドラは別スレッド上で実行される。 System.Threading.Timer の場合、ハンドラから例外がスローされればちゃんと AppDomain.UnhandledException イ…
この記事の話。 そーすると、aspx では実装漏れがある程度防止できていいけど、その代わりモックやフェイクの実装が面倒になるんだよなぁ。つか、NUnit の DynamicMock とかじゃ対応不可。 ここはやっぱ、aspx の各イベントハンドラでプレゼンタのメソッド呼…
Views Testability Guidanceこの記事から 5 つの記事が辿れるよ
こう書くと Assert.Fail が実行されなくてカバレッジが低下する。 Hoge hoge = new Hoge(); try { hoge.Fuga(); Assert.Fail(); } catch (InvalidOperationException) { } そこでこう書く bool wasThrown = false; Hoge hoge = new Hoge(); try { hoge.Fuga(…
これ、プロジェクトのプロパティで「すべてのユーザーにサーバー設定を適用 (プロジェクト ファイルに格納)」のチェックを外しとけば回避できた (^ω^;)
こんなインターフェイスを経由して取得するようにして、テスト時はフェイクを注入して制御するようにしてるけど、みんなそんな感じだよね? interface IClock { DateTime GetNow(); } class ClockFake : IClock { public DateTime Now { get; set; } public …
引数チェックの記述を簡単にするためのクラスを作ってる。 フルエントインターフェイスによって、高い可読性が得られていると個人的には思う。 private void Sample1(int? arg1, string arg2) { new Constraints<int?>().WithRangeConstraint(0, 10).Validate("arg</int?>…
展開される Web アプリにソースコードが含まれるのがイヤなので、いつも Web 配置 プロジェクトのプライマリ出力を Web セットアップ プロジェクトに含めていたのだけど…Web アプリケーション プロジェクトのプライマリ出力及びコンテンツ ファイルをWeb セ…
Visual Studio 開発サーバーじゃなく IIS Web サーバーを使用すると、CC サーバーでも仮想ディレクトリ作らなきゃいけない。 やっぱ、普段は Visual Studio 開発サーバーにしといた方がいいのかな。。。
IView.cs /// <summary> /// MVP (Model View Presenter) パターンにおける View を表すためのマーカーインターフェイスです。 /// </summary> public interface IView { } Presenter(TView).cs /// <summary> /// MVP (Model View Presenter) パターンにおける Presenter を表す基本抽象</summary>…
ASP.NET MVC じゃなくて ASP.NET と MVC について。 ASP.NET は実は一種の MVC だ。 ASP.NET における View は aspx ファイルに記述された「テンプレートビュー」で、Controller はコードビハインドで記述された「ページコントローラ」となる。 ただし、コー…
コンパイラ エラー CS0537 このエラーが発生するケースはきわめてまれです。
最低限これだけ記述すれば、ビルドだけは通る。 namespace System { public class Array { } public class Attribute { } public struct Boolean { } public struct Byte { } public struct Char { } public class Delegate { } public struct Double { } pu…
イミディエイトウィンドウってデバッグ中に限らず使用できるのかー。 非デバッグ時になんか入力して実行すると、ビルドされコンソールが立ち上がる。そんで、ブレークポイント貼ってあるコードが走る際は一時的にデバッグモードに切り替わる。 ただ、非デバ…
WPF は STA じゃないとダメなのか - 気楽に諸々白紙で印刷されたのは別の理由だったみたいだ つか、いつの間にか印刷実行すらされずに NullReferenceException が発生するようになってたりするのだが つかつか、WCF 関係なく WPF アプリケーション上で実行し…
やっぱ信用ならない。 認証絡みで IIS と違った動作してハマったことがあったので一時期使ってなかったんだけど、最近性懲りもなくまた使ってたら、WCF のストリーミングでハマった orz もちろん、IIS やセルフホストだと正常に動作する。
XpsDocument 作成せずに FixedDocument だけ作成しての印刷は諦めた。 以下、最後の最後で (恐らく ImageFrame のリファレンスが見つからず) NullReferenceException が発生する駄コード。ちなみに FixedDocumentSequence まで生成してそれを渡してみても駄…
さっきから ずっと 出力先 Microsoft XPS Document Writer にして 印刷処理 やってたけど ずっと エラー 出てて もう 3時間 てか コードを 色々 いじって 原因 探ってたけど さっき 気分転換に 出力先 PrimoPDF にして やってみたら 一発で 成功 みたいな
WCF で FixedDocument を生成して印刷しようとしたけれどダメだ。 新しく STA な Thread を生成してそちらで処理しようともしたけど、白紙で印刷されたし…。 うーん、困った。
大規模データとストリーミングある時点での通信データ量の取得とかできるかな [追記] クライアントにて、オペレーションを非同期実行して Stream.Position を監視することでできたー
System.Drawing.Point 構造体やら System.Drawing.Size 構造体やら System.Drawing.Rectangle 構造体やらやら。 しかも、フィールドの変更を行うメソッドを用意するとか、最悪だぞ。 Rectangle r = default(Rectangle); r.Location.X = 100; // コンパイルエ…