是否有指示所需 C# compiler/feature 版本的属性?
Is there an Attribute to indicate required C# compiler/feature version?
我有一个方法,其代码依赖于 c# 6.0。 (顺便说一句,6.0 的新功能很酷!)
我的同事可能会用旧版本打开它并被编译错误弄糊涂,或者认为这是拼写错误或语法错误。我不想让他们浪费时间,我也想CMA.
我想用指示此方法使用 c# 6.0 的标记属性标记该方法。
类似于:
[LanguageVersion(6.0, "This uses a C# 6.0 (Visual Studio 2015) language feature!")]
public string MyCoolMethod() => "hello world";
框架中有这样的属性吗?什么最能表明我的意图?
编辑(可能的解决方案):
根据 user2864740 的建议,我在 Build 下找到了一个项目设置,Advanced Build...
...不幸的是,Visual Studio 2010 无法识别 Language Version
设置的 C# 6.0
值,并简单地认为这是一个语法错误。在Visual Studio2010项目设置中打开的项目的语言版本被清空了!
编辑(选择的解决方案):
如果有人在较旧的 IDE 中打开此 class,他们将获得以下体验:
您可以使用自定义属性或只使用代码注释。
我有一个方法,其代码依赖于 c# 6.0。 (顺便说一句,6.0 的新功能很酷!)
我的同事可能会用旧版本打开它并被编译错误弄糊涂,或者认为这是拼写错误或语法错误。我不想让他们浪费时间,我也想CMA.
我想用指示此方法使用 c# 6.0 的标记属性标记该方法。
类似于:
[LanguageVersion(6.0, "This uses a C# 6.0 (Visual Studio 2015) language feature!")]
public string MyCoolMethod() => "hello world";
框架中有这样的属性吗?什么最能表明我的意图?
编辑(可能的解决方案):
根据 user2864740 的建议,我在 Build 下找到了一个项目设置,Advanced Build...
...不幸的是,Visual Studio 2010 无法识别 Language Version
设置的 C# 6.0
值,并简单地认为这是一个语法错误。在Visual Studio2010项目设置中打开的项目的语言版本被清空了!
编辑(选择的解决方案):
如果有人在较旧的 IDE 中打开此 class,他们将获得以下体验:
您可以使用自定义属性或只使用代码注释。