【发布时间】:2017-11-05 15:11:55
【问题描述】:
我同时拥有 Visual Studio 2017 和 2012。 我正在创建的项目仅适用于 VS2012(我真的不知道为什么,有一些额外的安装只能在 VS2012 上安装)。
这是我的代码的一部分。 例如:
enum Colors
{
blue = 0,
green = 1,
red = 2,
}
public Class LED
{
private ComponentLED[] _arr;
public LED()
{
//Here I create the array and fill him with the objects.
}
private ComponentLED GetLEDObjectByColor(string color)
{
//This line don't work
//('System.Enum' does not contain a definition for 'Parse'
int index = (int)( (Colors)Enum.Parse(typeof(Colors), color) );
return _arr[index];
}
}
据我了解:System.dll 没有定义某些函数。 我看到的唯一适用于 Enum 类的函数是: 枚举.Equals Enum.ReferenceEquals
所以我认为问题可能出在 system.dll 中。
也许您知道问题出在哪里或如何解决。非常感谢你。
这里有一些关于我当前 system.dll 的信息
路径:C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.2\Assemblies\le\System.dll
运行时版本:v4.0.30319
版本:4.2.0.0
和应用信息: 目标框架:.Net Micro FrameWork 4.2(最-无法更改)
【问题讨论】:
-
C# 从一开始就有枚举,你的代码还有其他问题。
-
我没说c#没有枚举。但是它们在 VS2012 中仅有的静态函数是:Enum.ReferenceEquals 和 Enum.Equals
-
“我知道 VS2012 太旧了,但出于某种原因,它是唯一适用于我的项目的版本。”那是你应该解决的问题,而不是永久地生活在一个古老的版本中。请注意,没有“.NET 4.2”之类的东西,因此不清楚您真正是的目标是什么。正如 Taylor 所说,该代码无论如何都应该适用于任何版本的桌面 .NET。我建议您创建一个包含项目详细信息的新问题,以及尝试将其迁移到 VS2017 时会发生什么。 (如果你真的想保留当前的问题,至少提供一个minimal reproducible example 并说出你看到了什么错误)
-
对,现在您已经告诉我们,正是 micro 框架产生了巨大的影响 - 这是一个非常小众的环境,值得明确从头开始。 VS2017 不仅可以开箱即用,我对此并不感到惊讶。
-
在此处查看:channel9.msdn.com/Blogs/MVP-VisualStudio-Dev/… 以获取 .NET MF 移植版本的 2017 年升级指南。
标签: c# visual-studio-2012 enums .net-micro-framework