2

C# メソッド/コンストラクターをコピー コンストラクターとしてタグ付けし、コピー コンストラクターのシナリオで発生する可能性がある明らかな間違いについてそのコードをチェックできるツールはありますか?

チェックすべきいくつかの明白な間違い:

  • ディープ コピーのはずなのに、明らかにシャロー コピーが発生している場合
  • 浅いコピーのはずが、深いコピーが発生している場合
  • コピーされていないソースのフィールド
  • コピーされていないターゲットのフィールド

おそらく、私が思いもよらなかった他の巧妙なチェックがあるでしょう。

これをサポートするツールは見つかりませんでした。Code Contracts は、これを行うための明らかなツールのように思えますが、存在するかどうかはわかりません。

静的分析ツール以外に、コピー コンストラクターを最新の状態に保つためのトリックはありますか?

4

1 に答える 1

1

単体テストは、おそらくここでの最良のツールです。

C# は、C++ やその他の言語のように、コピー コンストラクターを自動的に作成しません。そのため、これは通常、C++ で発生する傾向がある問題ではありません。

一般に、C# コードでは、他の多くの言語よりもはるかにまれである傾向があります。そのため、必要に応じて、これらのタイプの単体テストにこのチェックを含めた方がよいと思います。それらは特定のタイプにしか含まれないためです。

于 2012-05-25T18:46:15.310 に答える