estructura de un programa
TRANSCRIPT
![Page 1: Estructura de un programa](https://reader036.vdocuments.pub/reader036/viewer/2022083111/58f13d0d1a28ab1f538b45e5/html5/thumbnails/1.jpg)
Estructura de un programaLos 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.cscompila 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
![Page 2: Estructura de un programa](https://reader036.vdocuments.pub/reader036/viewer/2022083111/58f13d0d1a28ab1f538b45e5/html5/thumbnails/2.jpg)
se convierte automáticamente en procesador de código específico por el Just-In-Time (JIT) de. NET Common Language Runtime.
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.csEsto crea un ensamblado ejecutable llamado test.exe, que, cuando se ejecuta, produce la salida:
100101
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.