C# vs. Java-Aufzählungen: Ein Vergleichsleitfaden
Wenn Sie von Java auf C# umsteigen, werden Ihnen möglicherweise einige Unterschiede in der Art und Weise der Aufzählungen auffallen werden umgesetzt. Während C#-Aufzählungen zunächst einfacher erscheinen, bieten sie durch Erweiterungsmethoden und benutzerdefinierte Attribute deutliche Vorteile.
Hauptunterschiede
Beispiel mit Erweiterungsmethoden und benutzerdefinierten Attributen
Wir können eine Enumeration für Planeten definieren und Erweiterungsmethoden für GetSurfaceGravity() und hinzufügen 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); ... } ... }
Wir können dann diese Erweiterungsmethoden verwenden, um Berechnungen ähnlich dem Java-Beispiel durchzuführen:
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));
Dieses Beispiel zeigt, wie eine C#-Aufzählung mit erweiterter Funktionalität erstellt wird das ähnelt stark der Java-Implementierung.
Das obige ist der detaillierte Inhalt vonWie können C#-Enums mit Erweiterungsmethoden und benutzerdefinierten Attributen erweitert werden, um die Java-Enum-Funktionalität nachzuahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!