如何使接口的实现产生auto属性而不是NotImplementedException?

Dav*_*büz 27 c# visual-studio-2010 visual-studio

考虑到我们有一个简单的界面,例如ICar当我将鼠标移到ICar表达式上并单击Implement InterfaceVisual Studio生成下面的实现时.

有没有办法在界面上提供一个自动属性.这导致重新分解问题,每次都让我发疯!

    public interface ICar
    {
        double Power { get; set; }
    }

    public class Car:ICar
    {

        public double Power
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 26

您可以在选项中更改它:工具>选项>文本编辑器> C#>高级,并在您的底部

Ť

  • 这应该是公认的答案。谢谢诺伯特。 (3认同)
  • 谢谢。很高兴我向下滚动找到了这个。比接受的答案容易得多。 (3认同)
  • 我明白为什么不是,但我希望这是默认的。 (2认同)

Kar*_*son 25

单击时需要更改Visual Studio使用的模板Implement Interface.模板存储在以下位置:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Refactoring
Run Code Online (Sandbox Code Playgroud)

您需要更改的模板被调用 PropertyStub.snippet

注意:我会在进行更改之前备份现有的代码段文件,以便在事情进展不顺利时轻松恢复.

您需要更新的行是:

$GetterAccessibility$ get 
{ 
    $end$throw new $Exception$(); 
}
$SetterAccessibility$ set 
{ 
    throw new $Exception$(); 
}
Run Code Online (Sandbox Code Playgroud)

这些行应改为:

$GetterAccessibility$ get;
$SetterAccessibility$ set;
Run Code Online (Sandbox Code Playgroud)

  • 对于VS2K15/VS2K17,请使用Norbert Rozmus的答案. (3认同)
  • 有谁知道如何为VS 2015做这个工作? (2认同)