C# 與Java 列舉:比較指南
如果您從Java 過渡到C#,您可能會注意到枚舉方式上的一些差異已實施。雖然 C# 枚舉最初看起來更簡單,但它們透過擴展方法和自訂屬性提供了明顯的優勢。
主要區別
具有擴展方法和自訂屬性的範例
我們可以為行星定義一個枚舉,並為GetSurfaceGravity() 和GetSurWeight() 添加擴展方法:
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# 枚舉。
以上是如何使用擴充方法和自訂屬性來增強 C# 枚舉以模仿 Java 枚舉功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!