Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-如何在2012年使用2017年的新功能_C#_Visual Studio 2012_Enums_.net Micro Framework - Fatal编程技术网

C#-如何在2012年使用2017年的新功能

C#-如何在2012年使用2017年的新功能,c#,visual-studio-2012,enums,.net-micro-framework,C#,Visual Studio 2012,Enums,.net Micro Framework,我拥有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 h

我拥有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类上看到的唯一有效的函数是: 枚举等于 Enum.ReferenceEquals

所以我认为问题可能出在system.dll中,它是self

也许你知道问题是什么或者如何解决。我将非常感谢你

这里有一些关于我当前system.dll的信息

路径:C:\Program Files(x86)\Microsoft.NET Micro Framework\v4.2\Assemblys\le\System.dll

运行时版本:v4.0.30319

版本:4.2.0.0

及申请资料:
目标框架:.Net Micro Framework 4.2(它是最-无法更改的)

该.Net MicroFramework是一个非常精简的.Net Framework版本,可以在嵌入式系统上运行。为了适应这些系统的内存紧张限制,.NET基本库的许多功能已被剥离,只保留最重要的功能。您将看到它不包含任何解析选项

在对颜色枚举进行解析的情况下,您可能需要根据基础int值实现自己的代码。这也将使它在这些有限的系统上运行得更快

在过去几年中,.NET微框架的开发速度明显放缓,但最近一个新团队已经开始为其开发,并将其移植到Visual Studio 2017。一个很好的介绍可以和代码建立在2017年可以跟踪。

谢谢。 所以最佳的解决方案是

private ComponentLED GetLEDObjectByColor(string color)
{
   if(Colors.blue.ToString() == color)
      return _arr[(int)Colors.blue];
  //And continue it until I passed all the enums... 
}

C#从一开始就有枚举,您的代码还有其他问题。我没有说C#没有枚举。但是他们在VS2012中仅有的静态函数是:Enum.ReferenceEquals和Enum.Equals“我知道VS2012太旧了,但出于某种原因,它是唯一一个可以与我的项目一起使用的版本。”这是你应该解决的问题,而不是永远使用一个古老的版本。请注意,没有“.NET4.2”这样的东西,所以不清楚您真正的目标是什么。正如泰勒所说,不管怎样,这些代码都应该适用于任何版本的desktop.NET。我建议您创建一个包含项目详细信息的新问题,以及当您尝试将其迁移到VS2017时会发生什么。(如果你真的想保留当前的问题,至少提供一个答案,并说明你看到了什么错误)现在,你告诉我们,这是一个微观框架,它产生了巨大的差异-这是一个非常利基的环境,从一开始就应该明确这一点。我并不感到惊讶,它不仅仅是VS2017的开箱即用。请查看此处:在.NET MF的移植版本上获取2017年的升级指南。