Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Tutoriañ] C# Bibliotecas [ThemeNEW][Sencillo/Novatos]
#1
Tutorial de bibliotecas
Visual Studio .NET 2003
Este tutorial muestra cómo crear y utilizar bibliotecas en C#.

Archivos de ejemplo

Vea Ejemplo de bibliotecas para descargar y generar los archivos de ejemplo que se utilizan en este tutorial.

Información adicional

Crear y utilizar archivos DLL de C#
Opciones del compilador de C#
Tutorial

Este tutorial muestra cómo crear un archivo DLL administrado utilizando las opciones necesarias del compilador y cómo usar la biblioteca mediante un programa cliente.

Ejemplo

Este ejemplo utiliza los siguientes módulos:

La biblioteca DLL (Functions.dll), que se genera a partir de los siguientes archivos de código fuente:
Factorial.cs: calcula y devuelve el factorial de un número.

DigitCounter.cs: cuenta el número de dígitos de la cadena que se pasa como parámetro.

El programa cliente (FunctionTest.exe), que utiliza la DLL, se compila a partir del archivo de código fuente FunctionClient.cs. El programa muestra el factorial de los argumentos de entrada.
Generar la biblioteca

Para generar la biblioteca, haga de Functions el directorio actual y escriba lo siguiente en la línea de comandos:

csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs
donde:

/target:library Especifica que el resultado es una DLL y no un ejecutable (también evita que el compilador busque un punto de entrada predeterminado).
/out:Functions.dll Especifica que el nombre del archivo de resultados es Functions.dll. Normalmente, este nombre es el mismo que el del primer archivo de código fuente de C# especificado en la línea de comandos (en este ejemplo, Factorial).
Factorial.cs DigitCounter.cs Especifica los archivos que se van a compilar e incluir en la DLL.
Compilar el cliente

Para generar la biblioteca, haga de FunctionTest el directorio actual y escriba lo siguiente en la línea de comandos:

copy ..\Functions\Functions.dll .
csc /out:FunctionTest.exe /R:Functions.DLL FunctionClient.cs
donde:

/out:FunctionTest.exe Especifica que el nombre del archivo de resultados es FunctionTest.exe.
/R:Functions.DLL Especifica que Functions.DLL se debe incluir al resolver referencias. Esta DLL debe encontrarse en el directorio actual o especificarse con una ruta de acceso completa.
FunctionClient.cs Especifica el código fuente del cliente.
De esta forma, se crea el archivo ejecutable FunctionTest.exe.

Archivo 1 - Factorial.cs

El siguiente código calcula el factorial del entero que se pasa al método (contrariamente al Ejemplo de bibliotecas, que lo compila en una biblioteca).

// Factorial.cs
// compile with: /target:library
using System;

// Declares a namespace. You need to package your libraries according
// to their namespace so the .NET runtime can correctly load the classes.
namespace Functions
{
public class Factorial
{
// The "Calc" static method calculates the factorial value for the
// specified integer passed in:
public static int Calc(int i)
{
return((i <= 1) ? 1 : (i * Calc(i-1)));
}
}
}
Archivo 2 - DigitCounter.cs

El siguiente código se utiliza para contar el número de dígitos de la cadena que se pasa como parámetro:

// DigitCounter.cs
// compile with: /target:library /out:Functions.dll /reference:Factorial.dll
using System;

// Declare the same namespace as the one in Factorial.cs. This simply
// allows types to be added to the same namespace.
namespace Functions
{
public class DigitCount
{
// The NumberOfDigits static method calculates the number of
// digit characters in the passed string:
public static int NumberOfDigits(string theString)
{
int count = 0;
for ( int i = 0; i < theString.Length; i++ )
{
if ( Char.IsDigit(theString[i]) )
{
count++;
}
}
return count;
}
}
}
Archivo 3 - FunctionClient.cs

Una vez generada, la biblioteca puede ser utilizada por otros programas. El siguiente programa cliente utiliza las clases definidas en la biblioteca. La función básica del programa consiste en tomar cada parámetro de la línea de comandos e intentar calcular el valor factorial para cada argumento.

// FunctionClient.cs
// compile with: /reference:Functions.dll,Factorial.dll /out:FunctionTest.exe
// arguments: 3 5 10
using System;
// The following using directive makes the types defined in the Functions
// namespace available in this compilation unit:
using Functions;
class FunctionClient
{
public static void Main(string[] args)
{
Console.WriteLine("Function Client");

if ( args.Length == 0 )
{
Console.WriteLine("Usage: FunctionTest ... ");
return;
}

for ( int i = 0; i < args.Length; i++ )
{
int num = Int32.Parse(args[i]);
Console.WriteLine(
"The Digit Count for String [{0}] is [{1}]",
args[i],
// Invoke the NumberOfDigits static method in the
// DigitCount class:
DigitCount.NumberOfDigits(args[i]));
Console.WriteLine(
"The Factorial for [{0}] is [{1}]",
num,
// Invoke the Calc static method in the Factorial class:
Factorial.Calc(num) );
}
}
}
Resultado

La línea de comandos FunctionTest 3 5 10 utiliza el programa FunctionTest para calcular el factorial de los tres enteros 3, 5 y 10. También muestra el número de dígitos de cada argumento.

Esta ejecución proporciona el siguiente resultado:

Function Client
The Digit Count for String [3] is [1]
The Factorial for [3] is [6]
The Digit Count for String [5] is [1]
The Factorial for [5] is [120]
The Digit Count for String [10] is [2]
The Factorial for [10] is [3628800]


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Ataques sqlinject, que son(para novatos) forsa 11 684 21-06-2015, 07:13 AM
Último mensaje: habacuc78
  [Tutorial] C# Estructuras[Sencillo] Postteandox 7 1,184 03-01-2012, 11:11 PM
Último mensaje: ciberutilidades
  [Tutorial] C# Centro de Versiones [Newoverride] Sencillo Postteandox 0 478 21-11-2011, 01:10 AM
Último mensaje: Postteandox
  [Tutorial] C# Uso de Matrices [Sencillo] Postteandox 0 990 21-11-2011, 01:06 AM
Último mensaje: Postteandox
  [Tutorial] C# Proceso de los Parametros de comandos [Sencillo] Postteandox 0 783 21-11-2011, 01:03 AM
Último mensaje: Postteandox
  Cpanel para novatos Taquion 0 1,217 17-09-2009, 02:06 PM
Último mensaje: Taquion



Usuarios navegando en este tema: 1 invitado(s)