Partager via


Composant dans Visual C#

Voici l'aspect du composant de chaîne simple dans Visual C# :

Listing 1. Composant dans Visual C# (CompCS.cs)

using System;

namespace CompCS {
   public class StringComponent {
      private string[] StringsSet;

      public StringComponent() {
         StringsSet = new string[] {
            "C# String 0",
            "C# String 1",
            "C# String 2",
            "C# String 3"
         };
      }

     public string GetString(int index) {
        if ((index < 0) || (index >= 
           StringsSet.Length)) {
           throw new IndexOutOfRangeException();
         }
         return StringsSet[index];
      }

      public int Count {
         get { return StringsSet.Length; }
      }
   }
}

Comme indiqué précédemment, vous devez utiliser l'instruction namespace pour créer un nouvel espace de noms pour encapsuler les classes que vous allez créer :

namespace CompCS {

Cet espace de noms peut être imbriqué et fractionné sur plusieurs fichiers. Un seul fichier de code source peut également contenir plusieurs espaces de noms qui ne sont pas imbriqués. Un espace de noms conteneur est requis, puisque tout le code Visual C# doit être contenu dans une classe.

public class StringComponent {

Les instances de StringComponent seront créées par le Common Language Runtime et managées dans le tas du garbage collection. Le constructeur de classe (qui exécute à chaque fois une nouvelle instance de la classe à créer) a le même nom que la classe et n'a pas de type de retour.

public StringComponent() {

Étant donné que Visual C# n'utilise que des types managés, vous n'avez rien à faire de particulier lors de la déclaration des variables, comme vous deviez le faire dans les extensions managées pour C++.

Voici la méthode GetString, qui prend un entier et retourne une chaîne ; elle est simple et identique pour les trois exemples de langages :

public string GetString(int index) {
   ...
   return StringsSet[index];
}

Notez l'instruction throw dans la méthode GetString :

throw new IndexOutOfRangeException();

Cette instruction crée (et lève) un objet de gestion des exceptions basé sur le runtime de type IndexOutOfRangeException.

Enfin, vous devez créer la propriété Length en lecture seule :

public int Count {
   get { return StringsSet.Length; }
}

Le processus de compilation d'un composant Visual C# est seulement un peu plus compliqué que celui d'un programme autonome :

csc.exe /t:library /debug+ /out:..\bin\CompCS.dll CompCS.cs

Comme avec le composant des extensions managées pour C++, vous devez utiliser le commutateur /out pour placer le composant compilé dans le sous-répertoire ..\Bin. De la même manière, le commutateur /t(arget):library est nécessaire pour créer une DLL plutôt qu'un fichier exécutable avec une extension de nom de fichier .dll.

Voir aussi

Composant dans Visual Basic | Clients pour les composants simples | Résumé du didacticiel de développement | Annexe A : Outils pour l'exploration des espaces de noms