Overload dei membri

Nota

Questo contenuto è ristampato con l'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Tale edizione è stata pubblicata nel 2008 e il libro è stato interamente revisionato nella terza edizione. Alcune delle informazioni contenute in questa pagina potrebbero non essere aggiornate.

L'overload dei membri significa creare due o più membri nello stesso tipo che differiscono solo nel numero o nel tipo di parametri, ma hanno lo stesso nome. Ad esempio, nel codice seguente, il metodo WriteLine viene sottoposto a overload:

public static class Console {
    public void WriteLine();
    public void WriteLine(string value);
    public void WriteLine(bool value);
    ...
}

Poiché solo i metodi, i costruttori e le proprietà indicizzate possono avere parametri, è possibile eseguire l'overload solo di tali membri.

L'overload è una delle tecniche più importanti per migliorare l'usabilità, la produttività e la leggibilità delle librerie riutilizzabili. L'overload sul numero di parametri consente di fornire versioni più semplici di costruttori e metodi. L'overload sul tipo di parametro consente di usare lo stesso nome membro per i membri che eseguono operazioni identiche su un set selezionato di tipi diversi.

✔️ PROVARE a usare nomi di parametri descrittivi per indicare l'impostazione predefinita usata da overload più brevi.

❌ EVITARE nomi di parametri arbitrariamente variabili negli overload. Se un parametro in un overload rappresenta lo stesso input di un parametro in un altro overload, i parametri devono avere lo stesso nome.

❌ EVITARE l'incoerenza nell'ordinamento dei parametri nei membri di overload. I parametri con lo stesso nome devono essere visualizzati nella stessa posizione in tutti gli overload.

✔️ RENDERE virtuale solo l'overload più lungo (se è necessaria l'estendibilità). Gli overload più brevi devono semplicemente chiamare attraverso un overload più lungo.

❌ NON usare modificatori ref o out per eseguire l'overload dei membri.

Alcuni linguaggi non possono risolvere chiamate a overload come questa. Inoltre, tali overload hanno in genere una semantica completamente diversa e probabilmente non devono essere overload, ma due metodi separati.

❌ NON hanno overload con parametri nella stessa posizione e tipi simili ma con semantica diversa.

✔️ CONSENTIRE di passare null per argomenti facoltativi.

✔️ USARE l'overload dei membri anziché definire i membri con argomenti predefiniti.

Gli argomenti predefiniti non sono conformi a CLS.

Parti protette da copyright © 2005, 2009 Microsoft Corporation. Tutti i diritti sono riservati.

Ristampato con l'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2a edizione di Krzysztof Cwalina and Brad Abrams, pubblicato il 22 ottobre 2008 da Addison-Wesley Professional nella collana Microsoft Windows Development Series.

Vedi anche