关于 C# 6.0 中 "using static" 的重大更改,我如何处理在 VS 2013 和 VS2015 中编辑的 C# 代码库?
How do I handle a C# codebase being edited in both VS 2013 and VS2015 with regards to the breaking change of "using static" in C# 6.0?
我有一个 C# 代码库,它正在 VS 2013 和 VS 2015 CTP 6 中进行编辑。随着 CTP 6 的出现,C# v6 需要 "using static" 一些导入。
有没有一种方法可以确定正在使用哪个版本(VS 或 C#),以便我可以使用预处理器指令来使用 "using" 或 "using static"?
例如
#if CS6
using static ...
#else
using ...
#endif
预处理器指令是我最初的想法。如果有另一种方法可以做到这一点,我洗耳恭听。
如果它不破坏以前可编译的代码,则不是重大更改。由于 6.0 之前的 C# 中没有静态导入,因此这不是重大更改。
也不是必须的。那将是一个真正的突破性变化。
如果您想同时使用 Visual Studio 2013 和 Visual Studio 2015 的代码库,则必须使用最大公分母 C# 5.0。
静态using
不应该需要;它是添加到 C# 6.0 中的语法糖。你应该总是能够指定静态方法的完全限定名称来调用它,例如而不是
using System.Environment;
// class and method declaration elided
var path = GetFolderPath(...);
你总是可以
// no static using here!
// class and method declaration elided
var path = System.Environment.GetFolderPath(...);
或者,如果您没有自己的 class 称为 System
(您为什么要这样做?):
// still no static using here!
using System;
// class and method declaration elided
var path = Environment.GetFolderPath(...);
您可以按照此处描述的说明尝试在 Visual Studio 2013 中启用 C# 6.0 支持:How to enable C# 6.0 feature in Visual Studio 2013?
不过我还没有测试过。
我有一个 C# 代码库,它正在 VS 2013 和 VS 2015 CTP 6 中进行编辑。随着 CTP 6 的出现,C# v6 需要 "using static" 一些导入。
有没有一种方法可以确定正在使用哪个版本(VS 或 C#),以便我可以使用预处理器指令来使用 "using" 或 "using static"?
例如
#if CS6
using static ...
#else
using ...
#endif
预处理器指令是我最初的想法。如果有另一种方法可以做到这一点,我洗耳恭听。
如果它不破坏以前可编译的代码,则不是重大更改。由于 6.0 之前的 C# 中没有静态导入,因此这不是重大更改。
也不是必须的。那将是一个真正的突破性变化。
如果您想同时使用 Visual Studio 2013 和 Visual Studio 2015 的代码库,则必须使用最大公分母 C# 5.0。
静态using
不应该需要;它是添加到 C# 6.0 中的语法糖。你应该总是能够指定静态方法的完全限定名称来调用它,例如而不是
using System.Environment;
// class and method declaration elided
var path = GetFolderPath(...);
你总是可以
// no static using here!
// class and method declaration elided
var path = System.Environment.GetFolderPath(...);
或者,如果您没有自己的 class 称为 System
(您为什么要这样做?):
// still no static using here!
using System;
// class and method declaration elided
var path = Environment.GetFolderPath(...);
您可以按照此处描述的说明尝试在 Visual Studio 2013 中启用 C# 6.0 支持:How to enable C# 6.0 feature in Visual Studio 2013?
不过我还没有测试过。