Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C# dan Java Enums Berbeza, dan Bagaimana Kita Boleh Merapatkan Jurang Fungsi?
Perbezaan antara C# dan penghitungan Java dan cara untuk merapatkan perbezaan fungsi
Kedua-dua Java dan C# menyediakan jenis penghitungan, tetapi terdapat perbezaan yang ketara dalam cara ia dilaksanakan. Enum Java lebih berkuasa, manakala enum C# agak ringkas. Artikel ini meneroka perbezaan ini dan menunjukkan cara untuk meniru beberapa fungsi penghitungan Java dalam C#.
Perbezaan dalam struktur penghitungan
Penghitungan Java pada asasnya ialah kelas, dengan contoh ahli dan kaedah. Penghitungan C# ialah jenis nilai, dan pemalarnya bukan objek. Pemalar enum Java ialah objek, manakala pemalar enum C# hanyalah pemalar ringkas.
Perbezaan fungsi
Kaedah sokongan Java enums membebankan dan memulakan pemalar dengan kod tersuai. C# enums tidak mempunyai keupayaan ini.
Merapatkan perbezaan fungsi
Untuk mengimbangi kekurangan ini, C# menyediakan kaedah sambungan. Dengan mentakrifkan kaedah sambungan pada jenis penghitungan, kita boleh mensimulasikan fungsi yang hilang. Selain itu, sifat tersuai boleh melengkapkan gelagat seperti kaedah dengan menambahkan metadata pada pemalar penghitungan.
Mensimulasikan penghitungan Planet Java dalam C#
Untuk menggambarkan cara mensimulasikan penghitungan Planet Java dalam C#, kami memperkenalkan kaedah sambungan untuk mensimulasikan kaedah surfaceGravity()
dan surfaceWeight()
:
<code class="language-csharp">public static class Planets { public static double GetSurfaceGravity(this Planet p) => ...; public static double GetSurfaceWeight(this Planet p, double otherMass) => ...; }</code>
Selain itu, kami menetapkan sifat tersuai kepada setiap pemalar enum untuk mengisi ahli contoh:
<code class="language-csharp">[PlanetAttr(mass, radius)] public enum Planet { // 带有属性的枚举常量 } class PlanetAttr : Attribute { public double Mass { get; private set; } public double Radius { get; private set; } // 构造函数设置属性值 }</code>
Dengan pendekatan ini, C# menyediakan penyelesaian yang fleksibel untuk merangkumi kefungsian pelaksanaan penghitungan Java.
Atas ialah kandungan terperinci Bagaimanakah C# dan Java Enums Berbeza, dan Bagaimana Kita Boleh Merapatkan Jurang Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!