使用自动属性重构“实现接口”VS2015

8

我正在尝试通过 C# 的重构来让 Visual Studio 2015 (14.0) 在实现接口时使用自动属性。

也就是说,我希望实现以下内容;

public object SomeProperty { get; set; }

与此相反;
public object SomeProperty
{
    get
    {
        throw new NotImplementedException();
    }
    set
    {
        throw new NotImplementedException();
    }
}

我曾在以前的Visual Studio版本中通过编辑代码片段文件(这里有说明)来完成此操作,但是我无法在使用Visual Studio 2015时使其起作用。


我也做不到这个。我已经更改了我的propertyStub.snippet,但它没有注册更改。你解决了吗? - Qpirate
不,目前似乎还没有解决方案。如果我有时间的话,我可能会为自己制作一个扩展程序。 - angus
请参阅此主题以获取更多信息:https://connect.microsoft.com/VisualStudio/feedback/details/1857694/visual-studio-2015-implement-interface-snippet-not-working - labilbe
谢谢@labilbe。我想我很久以前就发现了这个问题。令人失望,但希望将来会有解决方法或实现。 - angus
2个回答

5

好的,我在测试 VS2019 Preview (16.0) 时找到了答案。

在主菜单栏中选择 工具 --> 选项 --> 文本编辑器 --> C# --> 高级,在 生成属性时 下找到 实现接口或抽象类 选项,选择 优先使用自动属性

这将导致与代码片段在 VS2015 之前所起到的作用相同。


1
您可以通过编辑 PropertyStub.snippet 来解决。
只需转到 C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC#\ Snippets \ 1033 \ Refactoring ,打开 PropertyStub.snippet 并进行编辑:
$GetterAccessibility$ get 
{ 
    $end$throw new $Exception$(); 
}
$SetterAccessibility$ set 
{ 
    throw new $Exception$(); 
}

to

$GetterAccessibility$ get;
$SetterAccessibility$ set;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接