C#

Dictionary の初期化

C#

Dictionary リテラルの夢は儚く散った・・・訂正。散ってはいなかった - ぐるぐる~こんな風に書けますよ (・∀・) var dict = new Dictionary<string, int> { { "Hoge", 1 }, { "Fuga", 2 }, { "Piyo", 3 } }; 方法 : コレクション初期化子を使用してディクショナリを初期</string,>…

忘れてた

C#と諸々 パブリックプロパティ (もしくはパブリックフィールド) の善悪GUI 周りと DB 周りの他に、ユニットテストにも関わってくるね。 ユニットテストでも恩恵を得られるけれど、たまに一工夫必要になる。 こんなクラスと public sealed class Hoge { publ…

やべw間違ってたww

採用試験に挑戦 - 気楽に諸々 ↑検証はあえて投稿後にやったけど、案の定間違ってた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…

アンマネージメモリと GC

Marshal.AllocHGlobal でアンマネージメモリに大容量データを確保したら GC.AddMemoryPressure で GC に報告してやる必要あるのかな…?

大容量データ

画像データを扱うプログラム作ってるんだけれど、処理の過程で 100 MB とかに膨れたり、別フォーマットに変換することで新たに 50 MB のデータが作成されたり…。 で、これを何度か繰り返すと OutOfMemoryException が発生するお…。 たぶん、GC で回収されな…

アンマネージメモリと 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(…

C# プロジェクトが作れない & 開けない

Microsoft Visual C# 2008 コンパイラを作成できなかったため、プロジェクト 'ConsoleApplication1' を開けませんでした。 '{74946829-37A0-11D2-A273-00C04F8EF4FF}' の QueryService が失敗しました。 // 追記 (17:20) とりあえず、"別のユーザーとして実…

"Introduction to Code Contracts"

Introduction to Code Contracts [Melitta Andersen] – BCL Team Blog

Timer (System.Threading) クラスと Timer (System.Timers) クラス

System.Timers.Timer は内部的に System.Threading.Timer を利用している。 どちらも、タイマーに登録したハンドラは別スレッド上で実行される。 System.Threading.Timer の場合、ハンドラから例外がスローされればちゃんと AppDomain.UnhandledException イ…

あー、ビューにイベント用意させてんのかぁ

この記事の話。 そーすると、aspx では実装漏れがある程度防止できていいけど、その代わりモックやフェイクの実装が面倒になるんだよなぁ。つか、NUnit の DynamicMock とかじゃ対応不可。 ここはやっぱ、aspx の各イベントハンドラでプレゼンタのメソッド呼…

MSDN に MVP パターンの記事発見

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 アプリケーション プロジェクトのプライマリ出力及びコンテンツ ファイルをWeb セ…

Visual Studio 開発サーバー || IIS Web サーバー

Visual Studio 開発サーバーじゃなく IIS Web サーバーを使用すると、CC サーバーでも仮想ディレクトリ作らなきゃいけない。 やっぱ、普段は Visual Studio 開発サーバーにしといた方がいいのかな。。。

MVP パターンを実装するための基本クラス

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 は実は一種の MVC だ。 ASP.NET における View は aspx ファイルに記述された「テンプレートビュー」で、Controller はコードビハインドで記述された「ページコントローラ」となる。 ただし、コー…

発生させちゃった><

コンパイラ エラー CS0537 このエラーが発生するケースはきわめてまれです。

「mscorlib.dll を参照しない」にチェックを付ける

最低限これだけ記述すれば、ビルドだけは通る。 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 アプリケーション上で実行し…

VS 付属の開発用 Web サーバーは

やっぱ信用ならない。 認証絡みで IIS と違った動作してハマったことがあったので一時期使ってなかったんだけど、最近性懲りもなくまた使ってたら、WCF のストリーミングでハマった orz もちろん、IIS やセルフホストだと正常に動作する。

もうやってられん

XpsDocument 作成せずに FixedDocument だけ作成しての印刷は諦めた。 以下、最後の最後で (恐らく ImageFrame のリファレンスが見つからず) NullReferenceException が発生する駄コード。ちなみに FixedDocumentSequence まで生成してそれを渡してみても駄…

ポカーン

さっきから ずっと 出力先 Microsoft XPS Document Writer にして 印刷処理 やってたけど ずっと エラー 出てて もう 3時間 てか コードを 色々 いじって 原因 探ってたけど さっき 気分転換に 出力先 PrimoPDF にして やってみたら 一発で 成功 みたいな

WPF は STA じゃないとダメなのか

WCF で FixedDocument を生成して印刷しようとしたけれどダメだ。 新しく STA な Thread を生成してそちらで処理しようともしたけど、白紙で印刷されたし…。 うーん、困った。

ストリーミング

大規模データとストリーミングある時点での通信データ量の取得とかできるかな [追記] クライアントにて、オペレーションを非同期実行して Stream.Position を監視することでできたー

値型をミュータブルにしやがって…

System.Drawing.Point 構造体やら System.Drawing.Size 構造体やら System.Drawing.Rectangle 構造体やらやら。 しかも、フィールドの変更を行うメソッドを用意するとか、最悪だぞ。 Rectangle r = default(Rectangle); r.Location.X = 100; // コンパイルエ…