Sekatan C# pada Atribut Generik: Misteri Yang Tidak Dapat Dijelaskan
Percubaan untuk menggunakan jenis generik dalam atribut C# menghasilkan ralat masa kompilasi yang membingungkan. Contohnya:
<code class="language-csharp">[Validates<string>] public static class StringValidation { // ... }</code>
Ini berbeza dengan bahasa seperti Java, di mana penggunaan sedemikian dibenarkan. C#, bagaimanapun, dengan tegas melarang jenis atribut generik. Sebab yang tepat untuk perkara ini masih tidak jelas.
Spesifikasi ECMA C# 2 dan 3 menyebut had ini tanpa memberikan sebarang penjelasan. Bekas pembangun Microsoft dan pereka bahasa C#, Eric Lippert, mencadangkan bahawa tiada rasional yang didokumenkan secara khusus. Keputusan itu mungkin berpunca daripada keutamaan bahasa dan kesederhanaan pengkompil, memfokuskan usaha pembangunan pada ciri dengan nilai yang lebih tinggi.
Oleh itu, larangan jenis atribut generik dalam C# berdiri sebagai ciri bahasa yang patut diberi perhatian, dan berpotensi mengehadkan, tanpa justifikasi yang jelas dan tersedia untuk umum.
Atas ialah kandungan terperinci Mengapakah Jenis Atribut Generik Tidak Dibenarkan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!