【问题标题】:How to change "Generate Method Stub" to throw NotImplementedException in VS?如何更改“生成方法存根”以在 VS 中抛出 NotImplementedException?
【发布时间】:2010-09-07 22:37:03
【问题描述】:

如何更改 Visaul Studio 中的默认 Generate Method Stub 行为以生成带有正文的方法

throw new NotImplementedException();

而不是

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

【问题讨论】:

    标签: .net visual-studio configuration


    【解决方案1】:

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

    Visual Studio 2005 支持面向 1.0 版本的紧凑框架。为了保持紧凑框架的大小,它不包括桌面框架中存在的所有相同类型。不包括的类型之一是 NotImplementedException。

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

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

    【讨论】:

      【解决方案2】:

      还有另一个原因:FxCop 会捕获任何抛出“异常”的实例并标记它,但抛出“NotImplementedException”的实例是可以接受的。

      我实际上喜欢默认行为,因为它确实有这种区别。 NotImplementedException 不是在您处理代码时抛出的临时异常。它暗示“我是认真的,我真的不会实现这个东西”。如果您按原样保留代码生成器,那么您很容易在代码中区分“我稍后会回来”位和“我决定不这样做”位。

      【讨论】:

      • 你可以创建自己的 NotYetImplementedException 或 WillNeverImplementThisMethodException 或 MissingCodeHereException 或 WillFixInNextVersionException :)
      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2012-11-30
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      相关资源
      最近更新 更多