2017-11-05 5 views
-3

Visual Studio 2017과 2012가 모두 있습니다. VS2012로만 작업하는 프로젝트입니다 (이유는 모르겠지만 추가 설치가 필요합니다. VS2012에만 설치할 수 있습니다).2012 년에 2017의 새로운 기능을 사용하는 방법

여기 내 코드의 일부입니다. 예를 들어 : System.dll을 어떤 함수를 정의하지 않습니다 : 내가 이해 한 것과

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]; 
} 
} 

. 열거 클래스에서 작동 내가 볼 수있는 유일한 기능은 다음과 같습니다 Enum.Equals Enum.ReferenceEquals

그래서 나는 문제가 자기의 System.dll을에있을 수 있습니다 생각했다.

혹시 문제인지 또는 해결 방법을 알고 계신 것 같습니다. 나는 너를 고맙게 생각한다. 여기

내 현재 System.dll을

경로에 대한 정보 : C : \ 프로그램 파일 (86) 마이크로 소프트 \ .NET 마이크로 프레임 워크 \의 버전 4.2 어셈블리 \ \ 제작 : \ System.dll을

런타임 버전 : v4.0.30319이

버전 : 4.2.0.0이

및 응용 프로그램 정보 : 대상 프레임 워크 : 닷넷 마이크로 프레임 워크 4.2 (그것은 가장 - 변경할 수 없습니다)

+0

C 번호는 처음부터 열거를했다 ...이 될 것입니다. –

+0

나는 C#에 enum이 없다고 말하지 않았다. 그러나 VS2012에있는 유일한 정적 함수는 Enum.ReferenceEquals 및 Enum.Equals – Artiom

+3

입니다. "VS2012가 너무 오래되었지만 어떤 이유로 든 내 프로젝트에서 작동하는 유일한 버전이라는 것을 알고 있습니다." 고대 버전으로 영구적으로 살기보다는 고쳐야 할 것이 있습니다. ".NET 4.2"와 같은 것은 없으므로 실제로 * 타겟팅하는 대상이 명확하지 않습니다. 테일러 (Taylor)에 따르면이 코드는 어쨌든 어떤 버전의 데스크탑에서도 작동 할 것이라고한다. 프로젝트의 세부 정보와 함께 새로운 질문을 작성하고 VS2017로 마이그레이션하려고하면 어떻게되는지를 제안합니다. (현재의 질문을 정말로 지키고 싶다면 적어도 [mcve]를 제공하고 어떤 오류가 표시되는지 말하십시오) –

답변

0

.NET MicroFramework는 임베디드 시스템에서 실행할 수있는 .NET 프레임 워크의 매우 슬림화 된 버전입니다. 이러한 시스템의 엄격한 메모리 제한에 맞추기 위해 .NET 기본 라이브러리의 많은 기능이 제거되어 가장 중요한 기능 만 남겨 둡니다. The correct .NET MicroFramework system library guidance for enums can be found here. 그리고 Parse 옵션이 없다는 것을 알 수 있습니다.

색상 열거 형 구문 분석의 경우 기본 int 값을 기반으로 자신의 코드를 구현해야 할 수도 있습니다. 그것은 또한 제한된 시스템에서 훨씬 더 빠를 것입니다.

.NET MicroFramework 개발은 지난 몇 년 동안 상당히 느려졌지만 최근에 새로운 팀이 개발을 시작하여 Visual Studio 2017로 이식했습니다. 멋진 소개는 be found on Channel9이고 2017에 대한 빌드 코드는 추적 한 in this GitHub issue.

0

감사합니다. 그래서 최적의 솔루션은 코드를 잘못 거기에 뭔가 다른,

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