https://github.com/pixelspark/corespark/blob/master/Libraries/atlmfc/src/mfc/dlgcore.cpp
https://learn.microsoft.com/ja-jp/cpp/mfc/using-the-mfc-source-files?view=msvc-160
静的解析
人がやることじゃないと思う。つまんねー指摘はツールに任せたい。
https://docs.microsoft.com/ja-jp/visualstudio/test/analyze-cpp-code-quality-of-store-apps-using-visual-studio-static-code-analysis?view=vs-2015
SAL
ライブラリー、ユーティリティのpublicなメソッドに限定するのがよさそう。
https://docs.microsoft.com/ja-jp/visualstudio/code-quality/understanding-sal?view=vs-2015&redirectedfrom=MSDN
IDisposableのお作法
using (new MyDisposeAction(() => {Dispose時の処理}))みたいなの、try-finallyでいいじゃん。Dispose使いたいだけの本末転倒な感じがする。
https://docs.microsoft.com/ja-jp/dotnet/standard/garbage-collection/implementing-dispose
仮想関数のオーバーライドにはoverrideキーワードを使おう
仮想関数の引数が変わったりとか、overrideをつけていればコンパイラーがエラーにしてくれる。人
https://qiita.com/yumetodo/items/f3ceb1a64a1540f85568
変数の生存区間は明確にしよう
長大な関数の中を中括弧で段落みたいにしてるの、なんなん? その中でしか使わない変数を中括弧の外で定義しているのはどうしてなの?
拡張メソッドは適切に使おう
拡張メソッドの体裁なのに第一引数使ってないとかただのstaticメソッドじゃん。市販のクラスとかを「拡張」する程度にとどめてほしい。
シングルトンじゃないじゃん
体裁はシングルトンなのに、そのクラスのとあるpublicメソッドが呼ばれると何か処理した後Disposeが呼ばれてその中で_instanceにnullを入れてる。_instanceいらないし、usingでいいじゃん。
1行に詰めて書かないでください
視線を真横に移動させられるから読みづらい。本筋の処理は視線を上から下に移動したら読めるよう書いてください。お願いします。