c# - Roslyn / .NET Compiler Platform 获取当前项目 C# 语言版本
问题描述
我正在使用 Roslyn 编写一个简单的代码重构,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# 项目中是否支持某个功能?
解决方案
推荐阅读
- amazon-web-services - 如何使用 SAM 通过 API Gateway 配置异步 lambda 调用?
- r - 对唯一值应用矢量化函数并展开
- asp.net-mvc - 我的数据库中客户端和用户之间的 SignalR 连接
- arrays - 如何使用 Ruby 连接数组中的字符串
- node.js - SyntaxError: Unexpected token / in JSON at position 324
- jquery - 删除特定的 html jquery
- python - 用户警告:在保存文件中找不到训练配置:模型*未*编译。手动编译
- tableau-api - Tableau 中的默认参数值
- pyspark - 我们可以从 aws Glue PySpark 作业触发 AWS Lambda 函数吗?
- html - 一致的社交媒体按钮