[解決済み] System.Enumから整数に変換するには?
2022-12-06 08:11:07
質問
任意の 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"));
}
}
何か提案はありますか?
どのように解決するのですか?
キャストしたくない場合。
Convert.ToInt32()
は、そのトリックを行うことができます。
ダイレクトキャスト(via
(int)enumValue
を介して) は不可能です。列挙型は異なる基本型を持つことができるので、これもまた "危険" であることに注意してください (
int
,
long
,
byte
...).
より正式には
System.Enum
とは直接の継承関係はありません。
Int32
(との直接的な継承関係はありません(ただし、どちらも
ValueType
であるにもかかわらず)、したがって、明示的なキャストは型システムの中で正しいとは言えません。
関連
-
[解決済み] enumを列挙するには
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] C#でenumからint値を取得する