Un client in Visual Basic

Di seguito è riportato il listato completo del codice sorgente relativo al client in Visual Basic:

Listato 1. Client in Visual Basic (ClientVB.vb)

Option Explicit
Option Strict

Imports System
Imports System.Collections

Imports CompCS
Imports CompVB
Imports CompVC

Public Module modmain

   ' The main entry point for the application.
   Sub Main()

      Dim Count As Integer

      ' Display result strings from the C# component.
      Dim MyCompCS As New CompCS.StringComponent
      Console.WriteLine("Strings from C# 
         StringComponent")
      For Count = 0 To MyCompCS.Count - 1
          Console.WriteLine(MyCompCS.GetString(Count))
      Next
      Console.WriteLine

      ' Display result strings from the Visual C++ component.
      Dim MyCompVC As New CompVC.StringComponent
      Console.WriteLine("Strings from Visual C++ 
         StringComponent")
      For Count = 0 To MyCompVC.Count - 1
          Console.WriteLine(MyCompVC.GetString(Count))
      Next
      Console.WriteLine

      ' Display the result strings from the Visual Basic component.
      Dim MyCompVB As New CompVB.StringComponent
      Console.WriteLine("Strings from Visual Basic 
         StringComponent")
      For Count = 0 To CInt(MyCompVB.Count) - 1
          Console.WriteLine(MyCompVB.GetString(Count))
      Next

   End Sub

End Module

Analogamente all'istruzione using dell'esempio in Visual C#, l'istruzione Imports specifica le librerie e incorpora nel programma gli spazi dei nomi, consentendo di fare riferimento a tipi inclusi nella libreria senza doverne specificare i nomi. Poiché il nome del tipo di tutti i componenti dell'esempio è lo stesso (StringComponent), sarà necessario specificare il nome completo per evitare ambiguità.

Il codice client è praticamente identico al codice degli esempi relativi alle estensioni gestite per C++ e Visual C#, ad eccezione di piccoli particolari quali gli operatori di risoluzione dell'ambito e l'assenza di caratteri di terminazione delle righe. Anche il codice che esegue la chiamata alle tre stringhe è lo stesso, con la sola differenza della specifica della libreria da utilizzare. Come nel caso degli esempi relativi alle estensioni gestite per C++ e a Visual C#, con la prima istruzione di ciascuna delle tre sezioni di codice viene dichiarata una nuova variabile locale di tipo StringComponent, la variabile viene inizializzata e viene chiamato il relativo costruttore:

Dim MyCompCS As New CompCS.StringComponent

Al termine della scrittura di una stringa nella console per indicare che si è entrati in questa parte del programma viene utilizzato il valore della proprietà Count per scorrere i membri del componente stringa appropriato:

For Count = 0 To MyCompVC.Count - 1
  Console.WriteLine(MyCompVC.GetString(Count))
Next

Non serve altro e tutto viene ripetuto per i componenti sviluppati negli altri due linguaggi.

La generazione dalla riga di comando è piuttosto semplice. L'unica differenza è rappresentata dalla scrittura del componente nella sottodirectory ..\Bin:

vbc.exe /t:exe /debug+ /optionstrict+ 
   /reference:..\Bin\CompCS.dll 
   /reference:..\Bin\CompVB.dll 
   /reference:..\Bin\CompVC.dll 
   /out:..\bin\ClientVB.exe ClientVB.vb

Vedere anche

Un client Windows utilizzando Windows Form | Un client utilizzando ASP.NET | Riepilogo dell'esercitazione di sviluppo | Appendice A: strumenti per l'esplorazione degli spazi dei nomi