Rumah >pembangunan bahagian belakang >C++ >Java vs. C# Enums: Bagaimanakah Kaedah Sambungan Merapatkan Jurang?

Java vs. C# Enums: Bagaimanakah Kaedah Sambungan Merapatkan Jurang?

Patricia Arquette
Patricia Arquetteasal
2025-01-12 07:34:46886semak imbas

Java vs. C# Enums: How Do Extension Methods Bridge the Gap?

Panduan Bermula untuk Penghitungan dalam Java dan C#

Pembangun yang berpindah dari Java ke C# mungkin mendapati bahawa penghitungan C# nampaknya lebih mudah daripada pelaksanaan Java. Mari kita terokai perbezaan antara penghitungan Java dan C# dan cara mengatasinya.

Perbezaan Utama

  • Sokongan kaedah: Java enums menyokong kaedah penentuan, yang C# enums secara tradisinya tidak.

Gunakan kaedah sambungan untuk mengatasi perbezaan

Dalam C#, anda boleh mencipta kaedah sambungan untuk penghitungan untuk menambah kaedah seperti surfaceGravity() dan surfaceWeight(). Contohnya:

<code class="language-csharp">using System;

class PlanetAttr : Attribute
{
    internal PlanetAttr(double mass, double radius)
    {
        this.Mass = mass;
        this.Radius = radius;
    }
    public double Mass { get; private set; }
    public double Radius { get; private set; }
}

public static class Planets
{
    public static double GetSurfaceGravity(this Planet p)
    {
        PlanetAttr attr = GetAttr(p);
        return G * attr.Mass / (attr.Radius * attr.Radius);
    }

    public static double G = 6.67300E-11;

    private static PlanetAttr GetAttr(Planet p)
    {
        return (PlanetAttr)Attribute.GetCustomAttribute(ForValue(p), typeof(PlanetAttr));
    }

    private static MemberInfo ForValue(Planet p)
    {
        return typeof(Planet).GetField(Enum.GetName(typeof(Planet), p));
    }
}

public enum Planet
{
    [PlanetAttr(3.303e+23, 2.4397e6)]  MERCURY,
    // ... other planets
}</code>

Dengan kod ini, anda boleh mengakses kaedah Planet setiap GetSurfaceGravity() nilai penghitungan.

Ringkasan

Walaupun enum Java menawarkan lebih banyak fungsi terbina dalam, enum C# menawarkan fleksibiliti yang lebih besar melalui kaedah sambungan. Dengan melaksanakan sambungan kaedah, anda boleh meniru kefungsian penghitungan Java dan menyesuaikan penghitungan mengikut keperluan khusus anda.

Atas ialah kandungan terperinci Java vs. C# Enums: Bagaimanakah Kaedah Sambungan Merapatkan Jurang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn