Client dans Visual C#
Voici comment le client apparaît dans Visual C# :
Listing 1. Client dans Visual C# (ClientCS.cs)
using System;
using CompVC;
using CompCS;
using CompVB;
// This class exists to house the application's entry point.
class MainApp {
// The static method, Main, is the application's entry point.
public static void Main() {
// Iterate through the component's strings,
// and write them to the console.
CompCS.StringComponent myCSStringComp = new
CompCS.StringComponent();
Console.WriteLine("Strings from C# StringComponent");
for (int index = 0; index < myCSStringComp.Count;
index++) {
Console.WriteLine(myCSStringComp.GetString(index));
}
// Iterate through the component's strings,
// and write them to the console.
CompVC.StringComponent myVCStringComp = new
CompVC.StringComponent();
Console.WriteLine("\nStrings from Visual C++
StringComponent");
for (int index = 0; index < myVCStringComp.Count;
index++) {
Console.WriteLine(myVCStringComp.GetString(index));
}
// Iterate through the component's strings,
// and write them to the console.
CompVB.StringComponent myVBStringComp = new
CompVB.StringComponent();
Console.WriteLine("\nStrings from Visual Basic
StringComponent");
for (int index = 0; index < myVBStringComp.Count;
index++) {
Console.WriteLine(myVBStringComp.GetString(index));
}
}
}
Contrairement à l'exemple des extensions managées pour C++, il n'est pas nécessaire d'importer les bibliothèques à ce stade. Mais vous pouvez les spécifier dans le processus de compilation. L'avantage de spécifier une bibliothèque via l'instruction using est que cette dernière incorpore l'espace de noms dans le programme, ce qui vous permet de référencer des types dans la bibliothèque sans qualifier entièrement les noms de types. Étant donné que les exemples de composants ont le même nom de type (StringComponent), vous devez quand même utiliser le nom qualifié complet pour supprimer toute ambiguïté lors d'une référence à la méthode (GetString) et à la propriété (Count), qui sont communes à tous les composants.
Visual C# fournit également un mécanisme appelé création d'alias pour résoudre ce problème. Si vous avez remplacé les instructions using par les suivantes, il n'est pas nécessaire de qualifier entièrement les noms :
using VCStringComp = CompVC.StringComponent;
using CSStringComp = CompCS.StringComponent;
using VBStringComp = CompVB.StringComponent;
Le code client est pratiquement identique à l'exemple des extensions managées pour C++, à l'exception des opérateurs de résolution de portée. De même, le code qui appelle les trois composants de chaîne est le même, à l'exception de la spécification relative à la bibliothèque à utiliser. Comme dans l'exemple des extensions managées pour C++, la première instruction figurant dans chacune des trois sections déclare une nouvelle variable locale de type StringComponent, initialise la variable et appelle son constructeur :
CompCS.StringComponent myCSStringComp = new
CompCS.StringComponent();
Après avoir écrit une chaîne dans la console pour indiquer que cette partie du programme a été entrée, le client utilise la valeur de la propriété Count pour itérer sur les membres du composant de chaîne approprié :
for (int index = 0; index < myVCStringComp.Count;
index++) {
Console.WriteLine(myVCStringComp.GetString(index));
}
C'est tout ce qui est requis et tout est répété pour les deux autres composants de langage.
La création du nouveau client Visual C# est simple. Maintenant que vous utilisez des composants de votre propre sous-répertoire ..\Bin, vous devez les inclure explicitement à l'aide du commutateur de compilation /reference :
csc.exe /debug+ /reference:..\Bin\CompCS.dll;
..\Bin\CompVB.dll;..\Bin\CompVC.dll
/out:..\Bin\ClientCS.exe ClientCS.cs
De plus, étant donné que vous créez un programme client plutôt qu'un composant qui peut être appelé à partir d'autres programmes, il n'est pas nécessaire d'utiliser le commutateur /t.
En dehors de cela, le processus est le même que dans les exemples Visual C# précédents. L'exécution du programme obtenu génère la sortie suivante :
C:\...\CompTest\Bin>clientcs
Strings from C# StringComponent
C# String 0
C# String 1
C# String 2
C# String 3
Strings from Visual C++ StringComponent
Visual C++ String 0
Visual C++ String 1
Visual C++ String 2
Visual C++ String 3
Strings from Visual Basic StringComponent
Visual Basic String 0
Visual Basic String 1
Visual Basic String 2
Visual Basic String 3
Voir aussi
Client dans Visual Basic | Client Windows utilisant Windows Forms | Client utilisant ASP.NET | Résumé du didacticiel de développement | Annexe A : Outils pour l'exploration des espaces de noms