如何更改“生成方法存根”以在VS中抛出NotImplementedException?

时间:2008-09-05 15:11:30

标签: .net visual-studio configuration

如何在Visual Studio中更改默认Generate Method Stub行为以生成包含body的方法

throw new NotImplementedException();

而不是

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

2 个答案:

答案 0 :(得分:8)

取自:http://blogs.msdn.com/ansonh/archive/2005/12/08/501763.aspx

  

Visual Studio 2005支持定位1.0版本的紧凑框架。为了使紧凑框架的大小保持较小,它不包括桌面框架中存在的所有相同类型。其中一个未包含的类型是NotImplementedException。

您可以通过编辑代码段文件来更改生成的代码: C:\ Program Files \ Microsoft Visual Studio 8 \ VC#\ Snippets \ 1033 \ Refactoring \ MethodStub.snippet ,并将声明部分更改为以下内容:

        <Declarations>
            <Literal Editable="true">
                <ID>signature</ID>
                <Default>signature</Default>
            </Literal>
            <Literal>
                <ID>Exception</ID>
                <Function>SimpleTypeName(global::System.NotImplementedException)</Function>
            </Literal>
        </Declarations>

答案 1 :(得分:1)

还有另外一个原因:FxCop捕获任何抛出'Exception'的实例并标记它,但抛出'NotImplementedException'实例是可以接受的。

我实际上喜欢默认行为,因为它确实有这种区别。 NotImplementedException不是在您处理代码时抛出的临时异常。它意味着“我的意思是,我真的不会实现这个东西”。如果你按原样保留codegen,你可以很容易地在代码中区分“我将在稍后回到这个”位,“我决定不做这个”位。