C#dikenali kerana pelbagai fungsi, tetapi ia selalu menjadi batasan yang signifikan yang tidak dapat dihidupkan mengikut jenisnya. Walau bagaimanapun, dengan kemunculan versi bahasa baru, banyak kaedah alternatif telah muncul untuk mengelakkan had ini.
c# 7 padanan mod
C# 7 Memperkenalkan padanan mod, yang merupakan mekanisme elegan yang membolehkan beralih secara langsung mengikut jenis. Pertimbangkan contoh berikut: Pemadanan mod
menyediakan kaedah keselamatan yang mudah dan jenis untuk memproses pelbagai jenis dalam pernyataan suis, dengan itu meningkatkan kebolehbacaan kod dan mempromosikan jenis operasi yang lebih berkesan.pengendali nameof () di C# 6
<code class="language-csharp">switch (shape) { case Circle c: WriteLine($"圆形,半径为 {c.Radius}"); break; // ... }</code>
Untuk pengguna C# 6, pengendali nama () menyediakan penyelesaian alternatif. Dengan menggunakan nama jenis sebagai rentetan sebagai sasaran, anda boleh membina pernyataan suis seperti yang ditunjukkan di bawah:
Walaupun tidak semestinya universal sebagai pemadanan mod, kaedah ini menyediakan kaedah yang boleh dipercayai untuk klasifikasi dalam versi C# 6 dan terdahulu.
c# 5 dan versi terdahulu Gunakan nama jenis nama jenis
<code class="language-csharp">switch (o.GetType().Name) { case nameof(AType): break; // ... }</code>
Bagi pengguna yang menggunakan C# 5 dan ke bawah, pernyataan suis asas menggunakan rentetan nama jenis yang keras masih merupakan kaedah yang boleh dilaksanakan, walaupun fleksibiliti rendah:
Walaupun ia tidak mempunyai kerumitan objek yang baru, kaedah ini masih dapat memenuhi keperluan -keputusan berasaskan jenis mudah dalam versi awal C#.
Atas ialah kandungan terperinci Bagaimanakah saya dapat mencapai aliran kawalan berasaskan jenis yang unggul di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!