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
Linda Hamiltonoriginal
2025-01-18 23:02:45492parcourir

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 :

<code class="language-csharp">[Validates<string>]
public static class StringValidation
{
    // ...
}</code>

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:
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