【问题标题】:Known issue with expression bodies in properties?属性中表达式主体的已知问题?
【发布时间】:2017-01-04 05:01:42
【问题描述】:

我在使用 Visual Studio 2017 RC 的最新 ReSharper 版本时遇到问题。

ReSharper 的编辑器告诉我它无法解析 var 之类的符号或 public 或 void 之类的标记,等等。pp。

不确定,但事实证明,属性中使用的表达式体是根本原因。

示例:

public double PlayingProgress
{
    get => _playingProgress;
    set => SetProperty(ref _playingProgress, value);
}

如果使用普通括号代替表达式主体,ReSharper 似乎不再有问题,因为红色标记区域消失了。

这是一个已知问题,还是有其他已知的原因?

是否有已知的解决方法(我已经尝试清除缓存并禁用/启用 ReSharper)?

如果这个新的 C# 7.0 功能不能与 ReSharper 一起使用,那就太糟糕了。

【问题讨论】:

  • 不应该将其作为问题提交给 Resharper 吗?如果 VS2017 接受并编译代码,这是一个 ReSharper 错误。也许,已经有一个 EAP 可以解决这个问题
  • @PanagiotisKanavos ReSharper 2016.3 最近发布了。我不希望很快会有新的 EAP。

标签: c# uwp resharper visual-studio-2017 c#-7.0


【解决方案1】:

根据this blog post,最新版本的 ReSharper (2016.3) 具有“对 C# 7 的早期支持”(强调我的)。这意味着并非所有 C# 7 功能现在都能正常工作(这篇文章明确提到了一些受支持的功能,但没有提到表达式主体的 getter 和 setter)。大概这会在以后的版本中修复,可能是在 VS 2017 的 RTM 版本发布时发布的版本。

考虑到 C# 7 仍在开发中,我认为您不应期望 ReSharper 等工具提供全面支持。

【讨论】:

  • 正是这个。尽管在 VS2017 的“候选发布”版本中发布,但 C# 7.0 尚未签署(并且也提到了 RC2/3 的重大更改,即使第一个 RC 具有上线许可证)。 ReSharper 计划在 2017.1 版本中支持 C# 7.0。预计在 VS2017 到达 RTM 时左右。
  • 好的,那我只需要再等到发布。而且7.0还没完?以为所有功能都已经完成,将要发货。
  • @klose91 据我所知,C# 7 的所有特性都已经实现,但它们的细节可能还会发生变化。
猜你喜欢
  • 2020-06-23
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
相关资源
最近更新 更多