Enum dalam C#

PHPz
PHPzasal
2024-09-03 15:15:061061semak imbas

Enum ialah kata kunci simpanan dalam C#, yang mewakili penghitungan. Penghitungan ialah jenis yang ditentukan pengguna dalam C# yang memegang satu set pemalar bernama. Setiap pemalar dalam set mempunyai nilai (secara lalai, integer). Pemalar boleh diakses melalui kedua-dua nama dan nilai. Oleh itu, nama tidak boleh diduplikasi dalam enum. Sintaks enum adalah mudah. Ia bermula dengan kata kunci enum, diikuti dengan nama pembolehubah dan satu set pemalar bernama dibalut dalam kurungan kerinting. Sudah tentu, ia berakhir dengan koma bertitik.

Sintaks:

enum <enum_name> {<set_of_named_constants>};

Contoh:

Kod:

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

Kerja Enum dalam C#

Enum mempunyai jenis asas dalam C#. Ini bermakna setiap pemalar dalam enum akan mempunyai nilai jenis asas yang diberikan kepadanya. Jenis asas lalai enum dalam C# ialah integer.

Dalam Hari enum di atas, kami mempunyai tujuh pemalar yang diisytiharkan. Ia mempunyai jenis integer asas lalai. Oleh itu, setiap pemalar akan mempunyai nilai integer yang diberikan kepadanya. Secara lalai, nilai bermula pada 0. Oleh itu, Sun akan mempunyai 0 ditetapkan kepadanya; Mon akan mempunyai 1 ditugaskan kepadanya, Sel akan mempunyai 2 ditugaskan kepadanya, dan seterusnya.

Mari kita ambil contoh lain. Kami akan memberikan nilai 1 kepada Sun. Ini akan memaksa pengkompil untuk memulakan tugasan daripada 1 dan bukannya 0. Kemudian, kami akan menetapkan nilai 8 kepada Kha. Pengkompil kemudian akan meneruskan tugasan dari 8 dan seterusnya.

Contoh #1

Kod:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
};
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine((Day)i);
}
}
}

Output:

Enum dalam C#

Contoh dunia sebenar boleh menjadi pelbagai peringkat dalam perjalanan pelanggan. Sudah tentu, semua pemalar boleh diisytiharkan secara berasingan dan diberikan nilai integer yang sepadan kepadanya, tetapi menggunakan enum menghilangkan kerumitan mengingati nilai integer untuk setiap peringkat dan menjadikan kod lebih mudah difahami.

Contoh #2

Kod:

using System;
public class Program
{
enum ClientJourney
{
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
};
public static void Main()
{
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
{
Console.WriteLine(str);
}
}
}

Output:

Enum dalam C#

Kaedah Enum dalam C#

Diberikan di bawah adalah kaedah enum dalam C#:

1. GetName(Type, Int32)

Kaedah GetName mengembalikan pemalar bernama dipetakan kepada nilai yang ditentukan dalam enum. Jika tiada pemalar bernama pada nilai itu, ia mengembalikan rentetan kosong.

Kaedah ini menjangkakan dua parameter – satu ialah jenis iaitu enum itu sendiri dan satu lagi ialah nilai yang ditentukan.

Dalam contoh Hari yang sama di atas, kami akan mencetak pemalar bernama melalui kaedah GetName.

Kod:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Enum.GetName(typeof(Day), i));
}
}
}

Output:

Enum dalam C#

2. GetNames(Jenis)

Dalam contoh di atas, kami terpaksa menggunakan gelung for untuk mendapatkan semua pemalar yang dinamakan bagi enum. Kaedah GetName lebih berguna apabila kita memerlukan satu atau bilangan terhad pemalar bernama.

Kami mempunyai kaedah lain GetNames() untuk mendapatkan semua pemalar bernama. Ia mengambil enum sebagai parameter input.

Dalam contoh Hari yang sama di atas, kami akan mencetak pemalar bernama melalui kaedah GetNames.

Kod:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach(string namedConstant in Enum.GetNames(typeof(Day))){
Console.WriteLine(namedConstant);
}
}
}

Output:

Enum dalam C#

3. GetValues(Jenis)

Kaedah GetValues() digunakan untuk mendapatkan nilai yang dipetakan asas kepada setiap pemalar bernama enum.

Dalam contoh Hari yang sama di atas, kami akan mencetak pemalar bernama melalui kaedah GetNames.

Kod:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach (int i in Enum.GetValues(typeof(Day)))
{
Console.WriteLine(i);
}
}
}

Output:

Enum dalam C#

Peraturan untuk Enum dalam C#

Diberikan di bawah adalah peraturan untuk enum dalam C#:

  • Enum ialah jenis, bukan pembolehubah/pemalar/kaedah.
  • Pemalar bernama Enum tidak boleh diduplikasi. Mereka mesti unik.
  • Jenis asas enum tidak boleh menjadi aksara.
  • Jenis asas lalai bagi enum ialah integer.
  • Secara lalai, nilai yang diberikan kepada pemalar bernama enum bermula dari 0, meningkat sebanyak 1 untuk setiap pemalar yang dinamakan berturut-turut.

Kelebihan Enum dalam C#

Diberikan di bawah adalah kelebihan yang dinyatakan:

  • Enum ialah amalan pengekodan yang sangat baik. Ia digunakan untuk menentukan set pemalar untuk aplikasi atau program. Oleh itu, set itu kekal malar dan mengelakkan huru-hara dalam program, terutamanya apabila ia merupakan aplikasi yang luas yang melibatkan berbilang pembangun.
  • Terdapat banyak senario di mana enum boleh digunakan. Hari dalam minggu, bulan dalam setahun, nisbah penukaran untuk suhu, faktor penukaran untuk zon waktu atau sebarang data jadual induk untuk aplikasi. Ini menjadikan kod lebih mudah dibaca dan lebih mudah difahami.

Kesimpulan

Oleh itu, kita telah melihat penggunaan enum dalam C#. Kami telah melihat cara ia berfungsi dan apakah kegunaan praktikalnya. Kami memahami peraturan yang perlu dipatuhi apabila menggunakan enum. Beberapa kaedah membantu kami mengakses dan memformat enum. Adalah disyorkan untuk menggunakan enum dalam kod anda sebanyak mungkin. Ini akan membantu anda memerhatikan amalan baik pengekodan dan mempelajari enum juga.

Atas ialah kandungan terperinci Enum dalam C#. 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
Artikel sebelumnya:C# Fungsi TempatanArtikel seterusnya:C# Fungsi Tempatan