Evitare un uso eccessivo di parametri nei tipi generici
Aggiornamento: novembre 2007
TypeName |
AvoidExcessiveParametersOnGenericTypes |
CheckId |
CA1005 |
Categoria |
Microsoft.Design |
Breaking Change |
Breaking |
Causa
Un tipo generico visibile esternamente presenta più di due parametri di tipo.
Descrizione della regola
Quanto più è alto il numero di parametri di tipo contenuti, maggiore è la difficoltà di sapere e ricordare cosa rappresenta ciascun parametro. Di solito, è ovvio con un parametro di tipo, come in List<T>, e in alcuni casi anche con due, come in Dictionary<TKey, TValue>. Se i parametri di tipo sono più di due, la difficoltà si rivela eccessiva per la maggior parte degli utenti, ad esempio, TooManyTypeParameters<T, K, V> in C# o TooManyTypeParameters(Of T, K, V) in Visual Basic.
Correzione di violazioni
Per correggere una violazione di questa regola, modificare la progettazione in modo che non vengano utilizzati più di due parametri di tipo.
Esclusione di avvisi
Non escludere avvisi per questa regola a meno che la progettazione non richieda assolutamente più di due parametri di tipo. La presenza di generics in una sintassi facile da comprendere e utilizzare riduce il tempo necessario all'apprendimento e aumenta la frequenza di adozione di nuove librerie.
Esempio
Nell'esempio seguente viene illustrata una classe che definisce 3 parametri di tipo generico che violano la regola.
Imports System
Namespace Samples
' Violates this rule
Public Class Tuple(Of T1, T2, T3)
End Class
End Namespace
using System;
namespace Samples
{
// Violates this rule
public class Tuple<T1, T2, T3>
{
}
}
using namespace System;
namespace Samples
{
// Violaties this rule
generic <typename T1, typename T2, typename T3>
public ref class Tuple
{
};
}
Regole correlate
Gli insiemi devono implementare un'interfaccia generica
Non dichiarare membri statici su tipi generici
Non nidificare tipi generici nelle firme dei membri
I metodi generici devono fornire parametri di tipo
Utilizzare istanze di gestori eventi generici
Utilizzare generics quando opportuno