1. Estructura de un programa
Los conceptos clave de la organización en C # son los programas, espacios de nombres, tipos,
miembros, y las asambleas. C # de los programas constan de uno o más archivos de código fuente.
Programas de declarar los tipos, los cuales contienen los miembros y se pueden organizar en los
espacios de nombres. Las clases e interfaces son ejemplos de tipos. Los campos, métodos,
propiedades y eventos son ejemplos de los miembros. Cuando los programas de C # se compila, se
encuentran físicamente empaquetados en las asambleas. Asambleas suelen tener la extensión de
archivo. Exe o dll., Dependiendo de si la implementación de aplicaciones o bibliotecas.
En el ejemplo
using System;
Acme.Collections espacio de nombres
{
public class Pila
{
Entrada la parte superior;
public void push (datos del objeto) {
top = nueva entrada (parte superior, los datos);
}
Pop objeto público () {
if (alto == null) throw InvalidOperationException
nuevo ();
resultado = objeto top.data;
top = top.next;
return resultado;
}
la clase de entrada
{
La entrada del público al lado;
los datos públicos de objetos;
La entrada del público (entrada de datos
próximos, objeto) {
this.next = siguiente;
this.data = datos;
}
}
}
}
declara una clase llamada Pila en un espacio de nombres llamado Acme.Collections. El nombre
completo de esta clase es Acme.Collections.Stack. La clase contiene varios miembros: un campo
llamado superior, dos métodos denominados push y pop, y una entrada de la clase anidada
denominada. La clase de entrada contiene además tres miembros: un campo de nombre al lado, un
campo de datos con nombre, y un constructor. Suponiendo que el código fuente del ejemplo se
almacena en los acme.cs de archivo, la línea de comandos
csc / t: library acme.cs
compila el ejemplo, como una biblioteca (código sin un punto de entrada principal) y produce un
ensamblado denominado acme.dll.
Asambleas contener código ejecutable en forma de lenguaje intermedio (IL), las instrucciones y la
información simbólica en forma de metadatos. Antes de ser ejecutado, el código IL en una asamblea
se convierte automáticamente en procesador de código específico por el Just-In-Time (JIT) de. NET
CommonLanguageRuntime.
2. Debido a que un conjunto es una unidad auto-descripción de la funcionalidad que contiene el
código y los metadatos, no hay necesidad de que las directivas # include y los archivos de cabecera
en C #. Los tipos y miembros públicos contenidos en un conjunto particular se ponen a disposición
en un programa de C #, simplemente haciendo referencia a que el montaje al compilar el programa.
Por ejemplo, este programa utiliza la clase Acme.Collections.Stack de la asamblea acme.dll:
using System;
utilizando Acme.Collections;
la clase de prueba
{
static void Main () {
Pila Pila s = new ();
s.Push (1);
s.Push (10);
s.Push (100);
Console.WriteLine (s.Pop ());
Console.WriteLine (s.Pop ());
Console.WriteLine (s.Pop ());
}
}
Si el programa se almacena en los archivos test.cs, cuando test.cs se compila, el conjunto de
acme.dll puede ser referenciado utilizando el compilador la opción / r:
csc / r: acme.dll test.cs
Esto crea un ensamblado ejecutable llamado test.exe, que, cuando se ejecuta, produce la salida:
100
10
1
C # permite que el texto fuente de un programa que se almacena en varios archivos fuente. Cuando
un archivo multi-programa en C # es compilado, todos los archivos de código fuente se procesan
juntos, y los archivos de código fuente libre puede hacer referencia a la otra-conceptual, es como si
todos los archivos de origen se concatenan en un archivo de gran tamaño antes de ser procesados.
Declaraciones adelantadas no son necesarias en C #, ya que, con muy pocas excepciones, para la
declaración es insignificante. C # no limita un archivo de origen a la declaración de un solo tipo de
público ni requiere el nombre del archivo de origen para que coincida con un tipo declarado en el
archivo de origen.