Rumah > pembangunan bahagian belakang > C++ > Mengapakah Jenis Atribut Generik Tidak Dibenarkan dalam C#?

Mengapakah Jenis Atribut Generik Tidak Dibenarkan dalam C#?

Linda Hamilton
Lepaskan: 2025-01-18 23:02:45
asal
492 orang telah melayarinya

Why Are Generic Attribute Types Not Allowed in C#?

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan