Condividi tramite


Implementazione dei metodi nei controlli personalizzati

Aggiornamento: novembre 2007

Un metodo viene implementato in un controllo nello stesso modo in cui avviene in qualsiasi altro componente.

In Visual Basic, se un metodo deve restituire un valore, viene implementato come Public Function, mentre se non deve restituire alcun valore, viene implementato come Public Sub. I metodi vengono dichiarati tramite la seguente sintassi:

Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
   ' Conversion code goes here.
End Function

Poiché le funzioni restituiscono un valore, devono specificare un tipo restituito come integer, string, object e così via. È anche necessario specificare gli argomenti accettati dalle routine Function o Sub, se presenti.

A differenza di Visual Basic, C# non fa distinzione tra funzioni e routine. Un metodo può restituire un valore o il risultato void. In C# per la dichiarazione di un metodo pubblico viene utilizzata la seguente sintassi:

public int ConvertMatterToEnergy(int matter)
{
   // Conversion code goes here.
}

Quando si dichiara un metodo, dichiarare, ove possibile, tutti i relativi argomenti come tipi di dati espliciti. È necessario dichiarare gli argomenti che accettano i riferimenti agli oggetti come tipi di classe specifici, ad esempio As Widget anzichéAs Object. In Visual Basic, l'impostazione predefinita Option Strict applica automaticamente questa regola.

Gli argomenti con tipo assegnato consentono di individuare molti errori degli sviluppatori al momento della compilazione, piuttosto che in fase di esecuzione. Il compilatore individua sempre gli errori, mentre i test in fase di esecuzione sono funzionali come la suite di test.

Metodi di overload

Per consentire agli utenti del controllo di specificare diverse combinazioni di parametri in un metodo, fornire più overload del metodo utilizzando la dichiarazione esplicita dei tipi di dati utilizzati. Evitare di creare parametri dichiarati As Object che possono contenere qualsiasi tipo di dati in quanto ciò potrebbe causare errori che non vengono individuati nei test.

Nota di Visual Basic:

Il tipo di dati universale in Common Language Runtime è Object anziché Variant. Variant è stato rimosso dal linguaggio.

Ad esempio, il metodo Spin di un ipotetico controllo Widget potrebbe consentire la specifica diretta della direzione e della velocità di rotazione oppure la specifica di un altro oggetto Widget da cui assorbire il momento angolare:

Overloads Public Sub Spin( _
   ByVal SpinDirection As SpinDirectionsEnum, _
   ByVal RevolutionsPerSecond As Double)
   ' Implementation code here.
End Sub
Overloads Public Sub Spin(ByVal Driver As Widget) _
   ' Implementation code here.
End Sub
public void Spin(SpinDirectionsEnum spinDirection, double revolutionsPerSecond)
{
   // Implementation code here.
}

public void Spin(Widget driver)
{
   // Implementation code here.
}

Vedere anche

Concetti

Eventi e delegati

Altre risorse

Proprietà dei controlli Windows Form