Rumah > pembangunan bahagian belakang > C++ > Mengapa C# Tidak Boleh Mempunyai Atribut Generik?

Mengapa C# Tidak Boleh Mempunyai Atribut Generik?

Patricia Arquette
Lepaskan: 2025-01-18 22:42:12
asal
327 orang telah melayarinya

Why Can't C# Have Generic Attributes?

Memahami Had C# pada Atribut Generik

C# melarang penggunaan jenis generik sebagai atribut. Contohnya, kod berikut:

<code class="language-csharp">public sealed class ValidatesAttribute<T> : Attribute
{

}

[Validates<string>]
public static class StringValidation
{

}</code>
Salin selepas log masuk

akan gagal untuk disusun. Walaupun sekatan ini diketahui umum, alasan di sebaliknya kurang jelas.

Spesifikasi Common Language Infrastructure (CLI) tidak secara eksplisit melarang atribut generik. Walau bagaimanapun, spesifikasi C# 3 (bahagian 10.1.4) dengan jelas menyatakan larangan tanpa justifikasi. Spesifikasi ECMA C# 2 tidak memberikan penjelasan lanjut.

Penyelidikan menunjukkan bahawa keputusan itu bukan berdasarkan kekangan teknikal, sebaliknya pilihan reka bentuk. Menurut Eric Lippert (diringkaskan), kerumitan yang ditambah dengan menyokong atribut generik akan mengatasi faedah, membawa kepada bahasa dan pengkompil yang lebih kompleks tanpa memberikan nilai yang besar kepada pembangun.

Atas ialah kandungan terperinci Mengapa C# Tidak Boleh Mempunyai Atribut Generik?. 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