Freigeben über


Eine Komponente in Visual C#

Die einfache Zeichenfolgenkomponente sieht in Visual C# folgendermaßen aus:

Auflistung 1. Komponente in 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; }
      }
   }
}

Wie bereits erwähnt, verwenden Sie die namespace-Anweisung zum Erstellen eines neuen Namespace, der die erstellten Klassen einkapselt:

namespace CompCS {

Dieser Namespace kann geschachtelt und auf mehrere Dateien verteilt sein. Eine einzelne Quellcodedatei kann auch mehrere Namespaces enthalten, die nicht geschachtelt sind. Ein enthaltender Namespace ist erforderlich, da der gesamte Visual C#-Code in einer Klasse enthalten sein muss.

public class StringComponent {

Instanzen von StringComponent werden von der Common Language Runtime erstellt und im Garbage Collection-Heap verwaltet. Der Klassenkonstruktor, der bei jeder Erstellung einer neuen Instanz der Klasse ausgeführt wird, hat denselben Namen wie die Klasse und keinen Rückgabetyp.

public StringComponent() {

Da Visual C# ausschließlich verwaltete Typen verwendet, müssen Sie hier im Gegensatz zu Managed Extensions for C++ beim Deklarieren von Variablen keine besonderen Maßnahmen ergreifen.

Dies ist die GetString-Methode, die eine Ganzzahl annimmt, eine Zeichenfolge zurückgibt, einfach ist und in allen drei Beispielsprachen identisch ist:

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

Dies ist die throw-Anweisung in der GetString-Methode:

throw new IndexOutOfRangeException();

Diese Anweisung erstellt ein laufzeitbasiertes Ausnahmebehandlungsobjekt vom Typ IndexOutOfRangeException (und löst es aus).

Schließlich erstellen Sie die schreibgeschützte Length-Eigenschaft:

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

Der Kompilierungsprozess für eine Visual C#-Komponente ist nicht viel komplizierter als der für ein eigenständiges Programm:

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

Wie bei der Managed Extensions for C++-Komponente verwenden Sie den Schalter /out, um die kompilierte Komponente im Unterverzeichnis ..\Bin abzulegen. Dementsprechend benötigen Sie den Schalter /t(arget):library, um anstelle einer ausführbaren Datei mit der Dateinamenerweiterung .dll eine DLL zu erstellen.

Siehe auch

Eine Komponente in Visual Basic | Clients für die einfachen Komponenten | Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces