Procedura dettagliata: creazione e implementazione di interfacce (Visual Basic)
Le interfacce descrivono le caratteristiche delle proprietà, dei metodi e degli eventi, ma i dettagli di implementazione sono definiti da strutture o classi.
Questa procedura dettagliata illustra come dichiarare e implementare un'interfaccia.
Nota
Questa procedura dettagliata non fornisce informazioni su come creare un'interfaccia utente.
Nota
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.
Per definire un'interfaccia
Aprire un nuovo progetto Applicazione Windows in Visual Basic.
Aggiungere un nuovo modulo al progetto facendo clic su Aggiungi modulo nel menu Progetto.
Assegnare un nome al nuovo modulo
Module1.vb
e fare clic su Aggiungi. Verrà visualizzato il codice per il nuovo modulo.Per definire un'interfaccia denominata
TestInterface
inModule1
, digitareInterface TestInterface
tra le istruzioniModule
eEnd Module
e quindi premere INVIO. L'editor di codice applica un rientro alla parola chiaveInterface
e aggiunge un'istruzioneEnd Interface
per formare un blocco di codice.Definire una proprietà, un metodo e un evento per l'interfaccia inserendo il codice seguente tra le istruzioni
Interface
eEnd Interface
:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementazione
È possibile notare che la sintassi usata per dichiarare i membri dell'interfaccia è diversa dalla sintassi usata per dichiarare i membri della classe. Questa differenza riflette il fatto che le interfacce non possono contenere codice di implementazione.
Per implementare l'interfaccia
Aggiungere una classe denominata
ImplementationClass
aggiungendo l'istruzione seguente aModule1
, dopo l'istruzioneEnd Interface
ma prima dell'istruzioneEnd Module
e quindi premendo INVIO:Class ImplementationClass
Se si lavora all'interno dell'ambiente di sviluppo integrato, l'editor di codice fornisce un'istruzione
End Class
corrispondente quando si preme INVIO.Aggiungere l'istruzione
Implements
seguente aImplementationClass
, che assegna un nome all'interfaccia implementata dalla classe:Implements TestInterface
Se elencata separatamente da altri elementi all'inizio di una classe o di una struttura, l'istruzione
Implements
indica che la classe o la struttura implementa un'interfaccia.Se si lavora all'interno dell'ambiente di sviluppo integrato, l'editor di codice implementa i membri della classe richiesti da
TestInterface
quando si preme INVIO ed è possibile ignorare il passaggio successivo.Se non si lavora nell'ambiente di sviluppo integrato, è necessario implementare tutti i membri dell'interfaccia
MyInterface
. Aggiungere il codice seguente aImplementationClass
implementareEvent1
,Method1
eProp1
:Event Event1() Implements TestInterface.Event1 Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1 End Sub Public Property Prop1() As Integer Implements TestInterface.Prop1 Get End Get Set(ByVal value As Integer) End Set End Property
L'istruzione
Implements
assegna un nome all'interfaccia e al membro dell'interfaccia da implementare.Completare la definizione di
Prop1
aggiungendo un campo privato alla classe che ha archiviato il valore della proprietà:' Holds the value of the property. Private pval As Integer
Restituire il valore di
pval
dalla funzione di accesso get della proprietà.Return pval
Impostare il valore di
pval
nella funzione di accesso get della proprietà.pval = value
Completare la definizione di
Method1
aggiungendo il codice seguente.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Per testare l'implementazione dell'interfaccia
Fare clic con il pulsante destro del mouse sul modulo di avvio per il progetto in Esplora soluzioni e scegliere Visualizza codice. L'editor visualizza la classe per il modulo di avvio. Per impostazione predefinita, il modulo di avvio è denominato
Form1
.Aggiungere il campo
testInstance
seguente alla classeForm1
:Dim WithEvents testInstance As TestInterface
Dichiarando
testInstance
comeWithEvents
, la classeForm1
può gestire i relativi eventi.Aggiungere il gestore eventi seguente alla classe
Form1
per gestire gli eventi generati datestInstance
:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Aggiungere una subroutine denominata
Test
alla classeForm1
per testare la classe di implementazione:Sub Test() ' Create an instance of the class. Dim T As New ImplementationClass ' Assign the class instance to the interface. ' Calls to the interface members are ' executed through the class instance. testInstance = T ' Set a property. testInstance.Prop1 = 9 ' Read the property. MsgBox("Prop1 was set to " & testInstance.Prop1) ' Test the method and raise an event. testInstance.Method1(5) End Sub
La routine
Test
crea un'istanza della classe che implementaMyInterface
, assegna tale istanza al campotestInstance
, imposta una proprietà ed esegue un metodo tramite l'interfaccia.Aggiungere il codice per chiamare la routine
Test
dalla routineForm1 Load
del modulo di avvio:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End Sub
Eseguire la routine
Test
premendo F5. Verrà visualizzato un messaggio che indica che la proprietà Prop1 è stato impostata su 9. Dopo aver fatto clic su OK, verrà visualizzato un messaggio che indica che il parametro X per Method1 è 5. Fare clic su OK e verrà visualizzato un messaggio che indica che il gestore eventi ha rilevato l'evento.