如何在Visual Studio中更改默认Generate Method Stub行为以生成包含body的方法
throw new NotImplementedException();
而不是
throw new Exception("The method or operation is not implemented.");
答案 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,你可以很容易地在代码中区分“我将在稍后回到这个”位,“我决定不做这个”位。