【问题标题】:Implementing an autoproperty on derived classes from the base class?在基类的派生类中实现自动属性?
【发布时间】:2011-11-04 19:28:28
【问题描述】:

我已经更新了界面。我想将派生类中的所有更改实现为自动属性,但它们是通过 NotImplemented 异常实现的。有没有办法将 ReSharper 6 创建的属性设置为 autoproeprty?

【问题讨论】:

    标签: resharper resharper-6.0


    【解决方案1】:

    这是一个 hacky 解决方法:

    1. 暂时将接口改为类。
    2. 创建所需的属性public 并将其定义复制到剪贴板
    3. 执行 Push Members Down 重构,这会将成员复制到实施者中。
    4. 将类恢复为接口并将属性重新添加(使用粘贴)到接口。

    不得不这样做很糟糕,但它确实有效。

    【讨论】:

      【解决方案2】:

      目前有两种不同的方式来实现缺少的接口成员。

      第一个是通过在实现类的body中按Alt+Ins并选择Implement missing members来调用的。在出现的对话框中,您可以选择将属性实现为自动属性。

      第二个是通过按 Alt+Enter 在实现类的 definition 语句的红色波浪上并选择 @ 987654323@。在这种情况下,生成的成员的主体由 ReSharper | Options... | Languages | Common | Members Generation 中的设置控制 - 其中 'autoproperty' 不是一个选项。

      There is an open YouTrack issue 在第二种情况下改进 UI 以提供自动属性选项 - JetBrains 已将其标记为关键,因此它可能进入 6.1,否则我们将不得不等待7.

      【讨论】:

      • 这么简单的事情,竟然这么复杂,还没修好。悲伤的熊猫。
      • 支持 Alt+Ins 技巧和问题链接。尽管如此,我发现自己更频繁地使用 R# 模板来生成引发属性更改事件等的视图模型属性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2016-12-25
      • 1970-01-01
      相关资源
      最近更新 更多