Compartir a través de


Un componente en Visual C#

Ésta es la apariencia que tiene el componente de cadena simple en Visual C#:

Lista 1. Componente en 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; }
      }
   }
}

Tal y como se ha mencionado anteriormente, se utiliza la instrucción namespace para crear un nuevo espacio de nombres con el fin de encapsular las clases que se vayan a crear:

namespace CompCS {

Este espacio de nombres puede estar anidado y puede dividirse entre varios archivos. Un sólo archivo de código fuente también puede contener varios espacios de nombres no anidados. Se requiere un espacio de nombres contenedor, ya que todo el código de Visual C# debe estar incluido en una clase.

public class StringComponent {

Common Language Runtime va a crear instancias de StringComponent, que serán administradas en el montón de la recolección de elementos no utilizados. El constructor de clases, que se ejecuta cada vez que se crea una nueva instancia de la clase, tiene el mismo nombre que la clase y no tiene ningún tipo de valor devuelto.

public StringComponent() {

A diferencia de Extensiones administradas de C++, no se ha de hacer nada especial al declarar variables ya que Visual C# utiliza sólo tipos administrados.

Éste es el método GetString, que utiliza un entero y devuelve una cadena. Además es sencillo y equivalente para los tres lenguajes de ejemplo:

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

Observe la instrucción throw en el método GetString:

throw new IndexOutOfRangeException();

Esta instrucción crea e inicia un objeto de control de excepciones basado en el tiempo de ejecución del tipo IndexOutOfRangeException.

Por último, se crea la propiedad Length de sólo lectura:

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

El proceso de compilación de un componente de Visual C# es sólo un poco más complicado que el de un programa independiente:

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

Al igual que en el caso del componente de Extensiones administradas de C++, se utiliza el modificador /out para colocar el componente compilado en el subdirectorio ..\Bin. De manera similar, se necesita el modificador /t(arget):library para crear un archivo DLL en lugar de un archivo ejecutable con la extensión de nombre de archivo .dll.

Vea también

Un componente en Visual Basic | Cliente para los componentes simples | Resumen del tutorial sobre la programación | Apéndice A: Herramientas para explorar espacios de nombres