Maison >développement back-end >C++ >Comment les énumérations C# se comparent-elles aux énumérations Java pour les développeurs effectuant le changement ?

Comment les énumérations C# se comparent-elles aux énumérations Java pour les développeurs effectuant le changement ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-12 06:30:41610parcourir

How Do C# Enums Compare to Java Enums for Developers Making the Switch?

C# vs Java Enums : une comparaison pour les développeurs migrant de Java vers C#

Pour les programmeurs migrant de Java vers C#, il est essentiel de comprendre les différences dans les capacités d'énumération des deux langages. Bien que les énumérations C# semblent initialement plus simples que les énumérations Java, elles offrent des fonctionnalités uniques qui peuvent être utilisées pour obtenir des résultats identiques, voire plus puissants.

Principales différences :

  • Méthodes d'extension : C# permet la création de méthodes d'extension sur une énumération, étendant ses fonctionnalités sans modifier sa définition d'origine. Cela permet d'ajouter des méthodes telles que surfaceGravity() et surfaceWeight() à l'énumération Planet.

Copier l'énumération Planet de Java en C# :

En C#, vous pouvez définir une énumération Planet et implémenter des méthodes d'extension équivalentes à l'aide de propriétés personnalisées ou de dictionnaires.

Méthode d'attribut personnalisé :

<code class="language-c#">[PlanetAttr(3.303e+23, 2.4397e6)]
public enum Planet
{
    MERCURY,
    VENUS,
    EARTH,
    // ... 其他行星
}</code>

L'attribut personnalisé PlanetAttr stocke la masse et le rayon de chaque planète.

Méthodes d'extension :

<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>

Méthode du dictionnaire :

<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>

À l'aide d'un dictionnaire, vous pouvez récupérer les valeurs de masse et de rayon et calculer la gravité de surface de la même manière que les méthodes d'attributs personnalisés.

En tirant parti des méthodes d'extension ou des dictionnaires, vous pouvez implémenter les mêmes fonctionnalités que les énumérations Java en C#, permettant une migration transparente du code et des concepts.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn