Maison > développement back-end > C++ > Pourquoi les types d'attributs génériques ne sont-ils pas autorisés en C# ?

Pourquoi les types d'attributs génériques ne sont-ils pas autorisés en C# ?

Linda Hamilton
Libérer: 2025-01-18 23:02:45
original
542 Les gens l'ont consulté

Why Are Generic Attribute Types Not Allowed in C#?

Restriction de C# sur les attributs génériques : un mystère inexpliqué

Tenter d'utiliser des types génériques dans les attributs C# entraîne une erreur de compilation déconcertante. Par exemple :

[Validates<string>]
public static class StringValidation
{
    // ...
}
Copier après la connexion

Cela contraste avec des langages comme Java, où une telle utilisation est autorisée. Cependant, C# interdit catégoriquement les types d’attributs génériques. La raison précise de cela reste floue.

Les spécifications ECMA C# 2 et 3 mentionnent cette limitation sans proposer aucune explication. Eric Lippert, ancien développeur Microsoft et concepteur du langage C#, suggère qu'il n'y a aucune justification spécifique et documentée. La décision découle probablement d'une priorité accordée à la simplicité du langage et du compilateur, en concentrant les efforts de développement sur des fonctionnalités ayant une valeur manifestement plus élevée.

Par conséquent, l'interdiction des types d'attributs génériques en C# constitue une caractéristique remarquable, et potentiellement limitante, du langage, sans justification claire et accessible au public.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal