System.Enumから派生した任意の型を対応する整数値に変換するための一般的なメソッドを作成したいと思います。System.Enumから基本整数に変換する方法ですか?
例えば、私が欲しいのはこのようなものです:
// Trivial example, not actually what I'm doing.
class Converter
{
int ToInteger(System.Enum anEnum)
{
(int)anEnum;
}
}
しかし、これは動作するように表示されません。 Resharperは、 'System.Enum'型の式を 'int'型にキャストできないと報告しています。
今私はこの解決策を考え出しましたが、私はむしろより効率的なものを持っています。
class Converter
{
int ToInteger(System.Enum anEnum)
{
return int.Parse(anEnum.ToString("d"));
}
}
お勧めはありますか?
私はResharperではなく、不平を言うコンパイラだと信じています。 – Kugel
必ずしもそうではありません。 System.Enumに拡張メソッドがあり、Resharperが不平を言うことにしました。 'Some.Cool.Type.That.Is.An.Enum'を 'System.Enum'に変換できません 列挙型です。コンパイルしてコードを実行するとうまくいきます。 VSをシャットダウンしてResharperキャッシュを吹き飛ばし、それを元に戻すと、再スキャンが完了するとすべてが正常です。私にとっては、それはある種のキャッシュスナフです。彼のために同じかもしれない。 – Mir
@私はこれにもReSharperに「不満」を与えました。私のための同じ修正。なぜこれらの型が混ざっているのか分かりませんが、コンパイラは間違いありません。 – akousmata