Roslyn / .NET编译器平台获取当前项目C#语言版本

时间:2018-05-04 13:59:16

标签: c# visual-studio roslyn

我正在编写一个使用Roslyn的简单代码重构,如果参数为null,则会引入抛出ArgumentNullException异常,如下所示:

if (parameter == null)
  throw new ArgumentNullException("parameter");
_parameter = parameter;

现在,对于C#6,可以使用nameof运算符使其更加优雅(可读?类型安全?,无论如何)。从C#7开始,我也可以使用throw表达式:

_parameter = parameter ?? throw new ArgumentNullException(nameof(parameter));

但是,显然,如果项目的语言版本未设置为支持C#6 / C#7或该功能请求的任何语言版本,则无法编译。

鉴于此背景,我的问题很简单。有没有办法确定Roslyn的当前语言版本,所以我可以在世代时决定建议哪些代码片段?或者有没有其他方法可以检测当前C#项目中是否支持某项功能?

0 个答案:

没有答案