2017-11-05 11 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:\プログラムファイル(x86の)\は、Microsoft .NET Frameworkのマイクロ\ v4.2のアセンブリ\ル\ System.dllの\

ランタイムバージョン:v4.0.30319

バージョン:4.2.0.0

とアプリケーション情報: ターゲットフレームワーク:.NET FrameWorkのマイクロ4.2(それはほとんどだ - それを変更することはできません)

+0

C#は非常に初めから列挙型を持っていたことでしょう、あなたのコードと間違って何か他のものがあります。 –

+0

私はC#に列挙型がないと言っていませんでした。しかし、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オプションが含まれていないことがわかります。

Color enum解析の場合、おそらく、基礎となる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... 
} 
関連する問題