Maison >Java >javaDidacticiel >Comment les énumérations C# peuvent-elles être améliorées avec des méthodes d'extension et des attributs personnalisés pour imiter la fonctionnalité d'énumération Java ?
Énumérations C# vs Java : un guide comparatif
Si vous passez de Java à C#, vous remarquerez peut-être des différences dans la façon dont les énumérations sont mises en œuvre. Bien que les énumérations C# semblent plus simples au départ, elles offrent des avantages distincts grâce aux méthodes d'extension et aux attributs personnalisés.
Différences clés
Exemple avec des méthodes d'extension et des attributs personnalisés
Nous pouvons définir une énumération pour les planètes et ajouter des méthodes d'extension pour GetSurfaceGravity() et 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); ... } ... }
Nous pouvons ensuite utiliser ces méthodes d'extension pour effectuer des calculs de la même manière que l'exemple 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));
Cet exemple montre comment créer une énumération C# avec des fonctionnalités améliorées qui ressemblent beaucoup à l'implémentation Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!