C# と Java Enum: Java から C# に移行する開発者向けの比較
Java から C# に移行するプログラマーにとって、2 つの言語の列挙機能の違いを理解することが重要です。 C# 列挙は、最初は Java 列挙よりも単純に見えますが、同じまたはさらに強力な結果を達成するために使用できる独自の機能を提供します。
主な違い:
C# で Java の Planet 列挙型をコピーします:
C# では、Planet 列挙を定義し、カスタム プロパティまたは辞書を使用して同等の拡張メソッドを実装できます。
カスタム属性メソッド:
<code class="language-c#">[PlanetAttr(3.303e+23, 2.4397e6)] public enum Planet { MERCURY, VENUS, EARTH, // ... 其他行星 }</code>
カスタムの PlanetAttr 属性には、各惑星の質量と半径が保存されます。
拡張メソッド:
<code class="language-c#">public static class Planets { public static double GetSurfaceGravity(this Planet p) { // 使用自定义属性获取行星属性 PlanetAttr attr = GetAttr(p); return G * attr.Mass / (attr.Radius * attr.Radius); } // ... 其他扩展方法 }</code>
辞書メソッド:
<code class="language-c#">private static readonly Dictionary<Planet, double[]> planetData = new Dictionary<Planet, double[]> { { Planet.MERCURY, new double[] { 3.303e+23, 2.4397e6 } }, // ... 其他行星 };</code>
辞書を使用すると、カスタム属性メソッドと同様に質量と半径の値を取得し、表面重力を計算できます。
拡張メソッドや辞書を利用すると、Java 列挙型と同じ機能を C# で実装でき、コードと概念をシームレスに移行できます。
以上が開発者が切り替える場合、C# 列挙型と Java 列挙型はどのように比較できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。