2018-08-01から1ヶ月間の記事一覧

ちょっとだけStatic Type Cachingのパフォーマンス確認

C#

CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する p.43からの部分のパフォーマンス比較を自分でやってみた。 Method Mean Error StdDev Allocated Dictionary 145.243 ns 3.6203 ns 0.2046 ns 0 B Cache 1.409 ns 0.1900 ns 0.0107 …

IDisposableの典型実装とコードスニペット

C#

(2020/5/10追記) 最新のVisual StudioではIDisposableの実装テンプレートをクイックアクションで生成できるようになっているので、コードスニペットを自前で用意する必要はありません。 stackoverflow.com この投稿が非常に分かりやすく参考になった。特に…

IEquatable<T>の典型実装とコードスニペット

C#

2018/12/15追記 こちらにまとめなおしたので参照してください。 qiita.com IEquatableの実装はややこしく、どうすればよいのかの情報が散乱していてよく混乱してしまうので、考慮もれなくきちんと実装できるようコードスニペット*1にまとめてある。ガイドラ…

簡単なGetHashCode()の実装例とパフォーマンス比較

C#

追記:Visual Studio 2017・ReSharperで自動生成できるので、もはや自動生成一択。 Generate C# Equals and GetHashCode Method Overrides - Visual Studio | Microsoft Docs stackoverflow.com stackoverflow.com IEquatableを実装した時にGetHashCode()を…

WPFアプリのMVVM構造の設計時に留意すべきこと

WPFアプリケーションでMVVMで実装するサンプルはネット上に数多くあるが、その多くは ウィンドウ 1つ(MainWindow.xaml) ビューモデルクラス 1つ(MainWindowViewModel.cs) モデルクラス 1つ(MainWindowModel.cs) といった簡単な構成になっており、こう…

MVVM + ヘキサゴナルアーキテクチャ + Entity Framework

WPFアプリケーションではMVVMのレイヤ化アーキテクチャがよく採用される。MVVMはGUIアーキテクチャの1つであり、 ビュー層 ビューモデル層 モデル層 の3層を考える、ビューにフォーカスした考え方である。したがって、例えばDDD(ドメイン駆動設計)における…