C# vs Java Enums: Panduan Perbandingan
Jika anda beralih dari Java ke C#, anda mungkin melihat beberapa perbezaan dalam cara enum dilaksanakan. Walaupun C# enum kelihatan lebih mudah pada mulanya, ia menawarkan kelebihan yang berbeza melalui kaedah sambungan dan atribut tersuai.
Perbezaan Utama
Contoh dengan Kaedah Sambungan dan Atribut Tersuai
Kami boleh mentakrifkan enum untuk planet dan menambah kaedah sambungan untuk GetSurfaceGravity() dan 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); ... } ... }
Kami kemudiannya boleh menggunakan kaedah sambungan ini untuk melakukan pengiraan sama seperti contoh 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));
Contoh ini menunjukkan cara mencipta enum C# dengan kefungsian dipertingkat yang hampir menyerupai pelaksanaan Java.
Atas ialah kandungan terperinci Bagaimanakah C# Enum boleh Dipertingkatkan dengan Kaedah Sambungan dan Atribut Tersuai untuk Meniru Fungsi Java Enum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!