8

VisaulStudioでデフォルトのGenerateMethodStubの動作を変更して、bodyを使用してメソッドを生成するにはどうすればよいですか?

throw new NotImplementedException();

それ以外の

throw new Exception("The method or operation is not implemented.");
4

2 に答える 2

8

出典: http://blogs.msdn.com/ansonh/archive/2005/12/08/501763.aspx

Visual Studio 2005 は、コンパクト フレームワークの 1.0 バージョンのターゲット設定をサポートしています。コンパクト フレームワークのサイズを小さく保つために、デスクトップ フレームワークに存在する同じ型がすべて含まれているわけではありません。含まれていない型の 1 つは NotImplementedException です。

コード スニペット ファイル C:\Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Refactoring\MethodStub.snippetを編集し、Declarations セクションを次のように変更することで、生成されたコードを変更できます。

        <Declarations>
            <Literal Editable="true">
                <ID>signature</ID>
                <Default>signature</Default>
            </Literal>
            <Literal>
                <ID>Exception</ID>
                <Function>SimpleTypeName(global::System.NotImplementedException)</Function>
            </Literal>
        </Declarations>
于 2008-09-05T15:17:12.593 に答える
1

別の理由があります。FxCopは「Exception」をスローする人のインスタンスをキャッチしてフラグを立てますが、「NotImplementedException」のインスタンスをスローすることは許容されます。

私は実際にはデフォルトの動作が好きです。なぜなら、この動作にはこの違いがあるからです。NotImplementedExceptionは、コードの処理中にスローされる一時的な例外ではありません。それは「つまり、私は実際にこのことを実装するつもりはない」という意味です。codegenをそのままにしておくと、コード内で「後でこれに戻る」ビットと「これを行わないことにした」ビットを簡単に区別できます。

于 2008-09-05T15:41:07.120 に答える