Rumah >pembangunan bahagian belakang >C++ >Java vs. C# Enums: Bagaimanakah Kaedah Sambungan Merapatkan Jurang?
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
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!