C# と Java の列挙型: 比較ガイド
Java から C# に移行している場合は、列挙型の使用方法にいくつかの違いがあることに気づくかもしれません。が実装されています。 C# 列挙型は最初は単純に見えますが、拡張メソッドとカスタム属性を通じて明確な利点を提供します。
主な違い
拡張メソッドとカスタム属性を使用した例
惑星の列挙型を定義し、GetSurfaceGravity() と GetSurfaceWeight() の拡張メソッドを追加できます:
public enum Planet { [PlanetAttr(3.303e+23, 2.4397e6)] MERCURY, [PlanetAttr(4.869e+24, 6.0518e6)] VENUS, [PlanetAttr(5.976e+24, 6.37814e6)] EARTH, ... } public static class Planets { public static double GetSurfaceGravity(this Planet p) { PlanetAttr attr = GetAttr(p); ... } ... }
これらの拡張メソッドを使用して、Java の例と同様の計算を実行できます:
double earthWeight = Double.parseDouble(args[0]); double mass = earthWeight/Planet.EARTH.GetSurfaceGravity(); for (Planet p : Planet.values()) System.out.printf("Your weight on %s is %f%n", p, p.GetSurfaceWeight(mass));
この例では、Java 実装によく似た拡張機能を備えた C# 列挙型を作成する方法を示します。
以上がJava Enum 機能を模倣するために拡張メソッドとカスタム属性を使用して C# Enum を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。