4 pagine in totale: <<Indietro 1 2 3 [4]
Finora si è parlato solamente degli elementi associati ad una particolare istanza di una classe (detti membri d'istanza). Oltre ad essi è possibile definire un insieme di elementi associati direttamente al tipo e condivisi da tutte le sue istanze (detti membri statici).
I metodi, i campi e le proprietà statiche possono essere utilizzati senza la necessità di invocare il costruttore per il tipo a cui si riferiscono. Essi sono contrassegnati con una particolare keyword che li identifica come statici: in C# la parola chiave è static, mentre in Visual Basic è Shared.
I membri statici possono essere contenuti in una classe indipendentemente dal fatto che in essa siano presenti anche membri d'istanza. Una classe che contiene unicamente membri statici viene definita anch'essa statica e in C# viene contrassegnata con la stessa keyword usata per i singoli membri (esempio 4.6).
Nota
Il costrutto Module (modulo) presente in Visual Basic è equiparabile ad una classe statica. I moduli in C# non esistono, per la loro definizione si usano direttamente le classi statiche. Per ulteriori dettagli sui moduli di Visual Basic si rimanda alla documentazione in linea di MSDN.
' Classe statica non derivabile equivalente ad un modulo
Public NotInheritable Class Calculator
' Costruttore privato
Private Sub New()
End Sub
Public Shared Function Sum(ByVal x As Integer, _
ByVal y As Integer) As Integer
Return x + y
End Function
Public Shared Function Divide(ByVal x As Integer, _
ByVal y As Integer) As Integer
Return x \ y
End Function
End Class
' I metodi vengono invocati direttamente sul tipo
Dim i As Integer = Calculator.Sum(18, 8)
Dim j As Integer = Calculator.Divide(18, 8)
// Classe statica
public static class Calculator
{
public static int Sum(int x, int y) { return x + y; }
public static int Diff(int x, int y) { return x - y; }
public static int Multiply(int x, int y) { return x * y; }
public static int Divide(int x, int y) { return x / y; }
}
// I metodi vengono invocati direttamente sul tipo
int i = Calculator.Sum(18, 8);
int j = Calculator.Divide(18, 8);
Nota
Come si può notare nell'esempio 4.6, per accedere ai membri statici di un tipo o agli elementi di un'istanza si utilizza il carattere "." (punto) seguito dal nome identificativo del membro e, nel caso dei metodi, dall'elenco dei parametri inclusi in una coppia di parentesi tonde. Questa notazione è valida per entrambi i linguaggi.
Internamente ai metodi e alle proprietà d'istanza di una classe è possibile utilizzare la keyword this in C# o Me in Visual Basic come riferimento all'istanza corrente. L'uso della parola chiave permette in molti casi di migliorare la leggibilità del codice e, al tempo stesso, di eliminare qualsiasi possibile ambiguità, in caso di omonimia degli identificatori (esempio 4.7).
Public Class Person
Private _fullName As String = string.Empty
Public Function GetFirstName() As String
' Utilizza il campo _fullName dell'istanza corrente
Return Me._fullName.Split(' ')(0)
End Function
End Class
public class Person
{
public string _fullName = string.Empty;
public string GetFirstName()
{
// Utilizza il campo _fullName dell'istanza corrente
return this._fullName.Split(' ')[0];
}
}
Un aspetto interessante delle classi è rappresentato dal fatto che esse possono essere definite come parziali. La dichiarazione di una classe può essere infatti distribuita in più file separati, ciascuno dei quali include un sottoinsieme dei membri. La classe deve essere contrassegnata con la parola chiave partial in C# e Partial in Visual Basic per indicare che si tratta di una dichiarazione parziale e non completa (esempio 4.8).
L'omissione della parola chiave comporta un errore in fase di compilazione, in quanto in questo caso al compilatore risultano essere presenti due tipi aventi lo stesso nome identificativo. Durante la fase di compilazione infatti le varie dichiarazioni parziali vengono unite a formare un'unica entità finale.
Public Partial Class Person
' Dichiarazione parziale
End Class
public partial class Person
{
// Dichiarazione parziale
}
Seconda parte
L'articolo continua nella seconda parte pubblicata il 24 ottobre 2006.
4 pagine in totale: <<Indietro 1 2 3 [4]
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 4
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà
Stampa
Download 


