Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
| Valeur | |
|---|---|
| Identificateur de la règle | CA2263 |
| Titre | Préférer la surcharge générique lorsque le type est connu |
| Catégorie | Utilisation |
| Le correctif est cassant ou non cassant | Non-breaking |
| Activé par défaut dans .NET 10 | À titre de suggestion |
La cause
Une surcharge de méthode qui accepte un System.Type argument est appelée lorsque le type est connu au moment de la compilation et qu’une surcharge générique appropriée est disponible.
Description de la règle
Les surcharges génériques sont préférables aux surcharges qui acceptent un argument de type System.Type lorsque le type est connu au moment de la compilation (à l’aide de l’opérateur typeof en C# ou de l’opérateur GetType en Visual Basic). Les surcharges génériques favorisent un code plus propre et plus sécurisé avec des vérifications au moment de la compilation améliorées.
Comment corriger les violations
Pour corriger une violation de cette règle, utilisez la surcharge générique appropriée.
Example
L’extrait de code suivant montre une violation de CA2263 :
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
L’extrait de code suivant corrige la violation :
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Quand supprimer les avertissements
Il est sûr de supprimer un avertissement de cette règle ; toutefois, nous vous recommandons d’utiliser une surcharge générique si possible.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.