Introduccion C#
Introduccion C#
Introduccion C#
Introducción
Introducción al lenguaje C# y .NET Framework
Compilación de una aplicación Hola mundo en C# con .NET Core en Visual Studio
2017
Depuración de la aplicación Hola a todos en C# con Visual Studio 2017
Publicación de la aplicación Hola mundo con Visual Studio 2017
Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017
Prueba de una biblioteca de clases con .NET Core en Visual Studio 2017
Consumo de una biblioteca de clases con .NET Core en Visual Studio 2017
Introducción a C# y Visual Studio Code
Introducción a C#
11/01/2018 • 4 min to read • Edit Online
Esta sección proporciona breves y sencillos tutoriales simples que permiten compilar una aplicación con rapidez
mediante C# y .NET Core. Incluye temas de introducción a Visual Studio 2017 y Visual Studio Code. Puede crear
una aplicación Hola mundo sencilla o, si tiene Visual Studio 2017, una biblioteca de clases sencilla que se puede
utilizar con otras aplicaciones.
Los siguientes temas se encuentran disponibles:
Introducción al lenguaje C# y .NET Framework
Proporciona información general sobre el lenguaje C# y .NET.
Compilación de una aplicación Hola mundo en C# con .NET Core en Visual Studio 2017
Visual Studio 2017, la última versión de Visual Studio, permite codificar, compilar, ejecutar, depurar, generar
perfiles y publicar aplicaciones para Windows desde un entorno de desarrollo integrado.
El tema le permite crear y ejecutar una aplicación Hola mundo sencilla y, a continuación, modificarla para
ejecutar una aplicación Hola mundo algo más interactiva. Una vez que haya terminado de generar y ejecutar
la aplicación, también puede aprender cómo depurarla y publicarla para que se pueda ejecutar en cualquier
plataforma compatible con .NET Core.
Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017
Una biblioteca de clases permite definir los tipos y miembros de tipo que se pueden llamar desde otra
aplicación. Este tema le permite crear una biblioteca de clases con un único método que determina si una
cadena comienza con un carácter en mayúscula. Una vez que haya terminado de compilar la biblioteca,
puede desarrollar una prueba unitaria para asegurarse de que funciona según lo previsto y, a continuación,
puede hacer que esté disponible para aplicaciones que desean usarla.
Introducción a C# y Visual Studio Code
Visual Studio Code es un editor de código gratuito optimizado para la compilación y depuración de
aplicaciones web y en la nube modernas. Es compatible con IntelliSense y está disponible para Windows,
macOS y Linux.
En este tema se muestra cómo crear y ejecutar una aplicación Hola mundo sencilla con Visual Studio Code y
.NET Core.
Otros recursos para los programadores de Visual C#
Proporciona vínculos a sitios Web y grupos de noticias con los que le será más fácil encontrar la solución a
los problemas más comunes.
Secciones relacionadas
Usar el entorno de desarrollo de Visual C#
Proporciona una guía para utilizar el entorno de desarrollo integrado de Visual C#.
Guía de programación de C#
Proporciona información sobre conceptos de programación en C# y describe cómo realizar diversas tareas
en C#.
Referencia de C#
Proporciona información de referencia detallada sobre palabras clave, operadores, directivas de
preprocesador, opciones del compilador y errores del compilador y advertencias de C#.
Ejemplos de Visual Studio
Proporciona información sobre cómo obtener acceso a los ejemplos en línea.
Tutoriales
Proporciona vínculos a los tutoriales de programación que usan C# y una breve descripción de cada uno.
Vea también
Introducción a Visual C# y Visual Basic con Visual Studio
Introducción al lenguaje C# y .NET Framework
11/01/2018 • 11 min to read • Edit Online
C# es un lenguaje elegante, con seguridad de tipos y orientado a objetos, que permite a los desarrolladores crear
una gran variedad de aplicaciones seguras y sólidas que se ejecutan en .NET Framework .NET. Puede usar C# para
crear aplicaciones cliente de Windows, servicios web XML, componentes distribuidos, aplicaciones cliente-servidor,
aplicaciones de base de datos y muchas, muchas más cosas. Visual C# proporciona un editor de código avanzado,
prácticos diseñadores de interfaz de usuario, un depurador integrado y muchas otras herramientas que facilitan el
desarrollo de aplicaciones basadas en el lenguaje C# y .NET Framework.
NOTA
En la documentación de Visual C# se supone que comprende los conceptos básicos de programación. Si es un principiante,
puede que desee explorar Visual C# Express, que está disponible en la Web. También puede aprovechar los libros y recursos
web sobre C# para aprender sobre habilidades prácticas de programación.
Lenguaje C#
La sintaxis de C# es muy expresiva, pero también sencilla y fácil de aprender. Cualquier persona familiarizada con
C, C++ o Java, reconocerá al instante la sintaxis de llaves de C#. Los desarrolladores que conocen cualquiera de
estos lenguajes puede empezar normalmente a trabajar en C# de forma productiva en un espacio muy corto de
tiempo. La sintaxis de C# simplifica muchas de las complejidades de C++ y proporciona características eficaces,
como tipos de valor que aceptan valores NULL, enumeraciones, delegados, expresiones lambda y acceso directo a
memoria, que no se encuentran en Java. C# admite métodos y tipo genéricos, que proporcionan una mayor
seguridad de tipos y rendimiento, e iteradores, que permiten a los implementadores de clases de colecciones
definir comportamientos de iteración personalizados que son fáciles de usar por el código de cliente. Las
expresiones Language-Integrated Query (LINQ) convierten la consulta fuertemente tipada en una construcción de
lenguaje de primera clase.
En cuanto lenguaje orientado a objetos, C# admite los conceptos de encapsulación, herencia y polimorfismo. Todas
las variables y métodos, incluido el método Main , el punto de entrada de la aplicación, se encapsulan dentro de las
definiciones de clase. Una clase puede heredar directamente de una clase primaria, pero puede implementar
cualquier número de interfaces. Los métodos que invalidan los métodos virtuales en una clase primaria requieren
la palabra clave override como una manera de evitar redefiniciones accidentales. En C#, un struct es como una
clase sencilla; es un tipo asignado en la pila que puede implementar interfaces pero que no admite herencia.
Además de estos principios básicos orientados a objetos, C# facilita el desarrollo de componentes de software
mediante varias construcciones de lenguaje innovadoras, incluidas las siguientes:
Signaturas de método encapsulado llamadas delegados, que permiten notificaciones de eventos con
seguridad de tipos.
Propiedades, que actúan como descriptores de acceso para variables miembro privadas.
Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de ejecución.
Comentarios de doc.umentación XML insertados
Language-Integrated Query (LINQ) que proporciona funcionalidades de consulta integradas en diversos
orígenes de datos.
Si tiene que interactuar con otro software de Windows, como objetos COM o archivos DLL nativos de Win32,
puede hacerlo en C# mediante un proceso denominado "Interoperabilidad". La interoperabilidad permite que los
programas de C# hagan casi todo lo que puede hacer una aplicación C++ nativa. C# admite incluso el uso de
punteros y el concepto de código "no seguro" en los casos en los que el acceso directo a memoria es
absolutamente crítico.
El proceso de compilación de C# es simple en comparación con C y C++ y más flexible que en Java. No hay ningún
archivo de encabezado independiente y ningún requisito de declaración de métodos y tipos en un orden en
particular. Un archivo de código fuente de C# puede definir cualquier número de clases, structs, interfaces y
eventos.
Los siguientes son recursos adicionales de C#:
Para obtener una buena introducción general al lenguaje, consulte el capítulo 1 de la especificación del
lenguaje C#.
Para más información sobre aspectos específicos del lenguaje C#, consulte la referencia de C#.
Para más información sobre LINQ, consulte LINQ (Language-Integrated Query).
Vea también
C# Introducción a Visual C# y Visual Basic
Compilación de una aplicación Hola a todos en C#
con .NET Core en Visual Studio 2017
11/01/2018 • 8 min to read • Edit Online
En este tema se proporciona una introducción detallada para compilar, depurar y publicar una sencilla aplicación
de consola .NET Core con C# en Visual Studio 2017. Visual Studio 2017 proporciona un entorno de desarrollo
completo para la compilación de aplicaciones .NET Core. Siempre que la aplicación no tenga dependencias
específicas de la plataforma, la aplicación puede ejecutarse en cualquier plataforma que tenga como destino .NET
Core y en cualquier sistema que tenga instalado .NET Core.
Requisitos previos
Visual Studio de 2017 con la carga de trabajo "Desarrollo multiplataforma de .NET Core" instalada. Puede
desarrollar su aplicación con .NET Core 1.1 o .NET Core 2.0.
Para obtener más información, vea el tema Requisitos previos para .NET Core en Windows.
2. Visual Studio usa la plantilla para crear el proyecto. La plantilla de aplicación de consola de C# para .NET
Core define automáticamente una clase, Program , con un único método, Main , que adopta una matriz
String como argumento. Main es el punto de entrada de la aplicación, el método que se llama
automáticamente mediante el tiempo de ejecución cuando inicia la aplicación. Los argumentos de línea de
comandos proporcionados cuando se inicia la aplicación están disponibles en la matriz args.
La plantilla crea una aplicación "Hola mundo" sencilla. Llama al método Console.WriteLine(String) para
mostrar la cadena literal "Hola mundo" en la ventana de la consola. Al seleccionar el botón HelloWorld con
la flecha verde en la barra de herramientas, puede ejecutar el programa en modo de depuración. Si lo hace,
la ventana de la consola se mostrará durante poco tiempo antes de cerrarse. Esto ocurre porque el método
Main finaliza y la aplicación termina en cuanto se ejecuta la única instrucción en el método Main .
3. Para que la aplicación se pause antes de que se cierre la ventana de la consola, agregue el siguiente código
inmediatamente después de la llamada al método Console.WriteLine(String):
Este código pide al usuario que presione cualquier tecla y, a continuación, detiene el programa hasta que se
presiona una tecla.
4. En la barra de menús, seleccione Compilar > Compilar solución. De esta forma, el programa se compila
en un lenguaje intermedio (IL) que se convierte en código binario mediante un compilador Just-In-Time
(JIT).
5. Seleccione el botón HelloWorld con la flecha verde en la barra de herramientas para ejecutar el programa.
Este código muestra "What is your name?" en la ventana de la consola y espera a que el usuario escriba una
cadena seguida de la tecla Entrar. Almacena esta cadena en una variable denominada name . También
recupera el valor de la propiedad DateTime.Now, que contiene la hora local actual, y lo asigna a una variable
denominada date . Por último, usa una cadena interpolada para mostrar estos valores en la ventana de la
consola.
2. Compile el programa; para ello, seleccione Generar > Compilar solución.
3. Ejecute el programa en modo de depuración en Visual Studio; para ello, seleccione la flecha verde en la
barra de herramientas, presione F5 o seleccione el elemento de menú Depurar > Iniciar depuración.
Responda a la solicitud escribiendo un nombre y presionando la tecla Entrar.
4. Presione cualquier tecla para cerrar la ventana de consola.
Ha creado y ejecutado la aplicación. Para desarrollar una aplicación profesional, realice algunos pasos adicionales
para preparar el lanzamiento de la aplicación:
Para obtener información sobre la depuración de la aplicación, vea Depuración de la aplicación Hola a todos
en C# con Visual Studio 2017.
Para obtener información sobre el desarrollo y publicación de una versión de distribución de la aplicación,
vea Publicación de la aplicación Hola a todos en C# con Visual Studio 2017.
Temas relacionados
En lugar de una aplicación de consola, también puede crear una biblioteca de clases con .NET Core y Visual Studio
2017. Para consultar una introducción detallada, vea Building a class library with C# and .NET Core in Visual Studio
2017 (Creación de una biblioteca de clases con C# y .NET Core en Visual Studio 2017).
También puede desarrollar una aplicación de consola .NET Core en Mac, Linux y Windows mediante Visual Studio
Code, un editor de código descargable. Para obtener un tutorial detallado, vea Introducción a Visual Studio Code.
Depuración de la aplicación Hola a todos con Visual
Studio 2017
11/01/2018 • 18 min to read • Edit Online
Hasta ahora, ha seguido los pasos descritos en Compilación de una aplicación Hola a todos en C# con .NET Core
en Visual Studio 2017 o Compilación de una aplicación Hola a todos en Visual Basic con .NET Core en Visual
Studio 2017 para crear y ejecutar una aplicación de consola sencilla. Cuando haya escrito y compilado la
aplicación, puede comenzar a probarla. Visual Studio incluye un conjunto completo de herramientas de
depuración que puede usar para probar y solucionar problemas de la aplicación.
Siempre debe empezar probando el programa en modo de depuración. El modo de depuración desactiva la
mayoría de las optimizaciones del compilador y proporciona información más completa durante el proceso de
compilación.
String.IsNullOrEmpty(name)
Se está probando una condición de código, en la que la llamada al método String.IsNullOrEmpty(name) es true
porque name no tiene asignado un valor o porque su valor es una cadena vacía (""). También puede especificar un
número de llamadas, que es lo que interrumpe la ejecución antes de que una instrucción se ejecute un número
especificado de veces; o una condición de filtro, que es lo que interrumpe la ejecución del programa en función de
atributos como un identificador de subproceso, nombre de proceso o nombre de subproceso.
1. Seleccione el botón Cerrar para cerrar el cuadro de diálogo.
2. Ejecute el programa en modo de depuración.
3. En la ventana de consola, cuando se le pida que escriba su nombre, presione la tecla Entrar.
4. Como la condición que hemos especificado, name es null o String.Empty, se ha cumplido, la ejecución del
programa se detiene cuando se alcanza el punto de interrupción y antes de que se ejecute el método
Console.WriteLine .
5. Seleccione la ventana Variables locales, que muestra los valores de las variables que son locales para el
método que se ejecuta actualmente, que es el método Main en su programa. Observe que el valor de la
variable name es "" o String.Empty.
C#
Visual Basic
1. Confirme que el valor es una cadena vacía escribiendo la siguiente instrucción en la ventana Inmediato. El
resultado es true .
? name == String.Empty
1. Seleccione el botón Continuar en la barra de herramientas para continuar la ejecución del programa.
2. Presione cualquier tecla para cerrar la ventana de consola y salir del modo de depuración.
3. Para borrar el punto de interrupción, haga clic en el punto en el margen izquierdo de la ventana de código,
o seleccione el elemento de menú Depurar > Alternar punto de interrupción con la fila seleccionada.
En este punto, la ventana Automático muestra que su programa ha definido solo una variable, args .
Dado que no ha pasado ningún argumento de línea de comandos al programa, su valor es una matriz de
cadena vacía. Además, Visual Studio ha abierto una ventana de consola en blanco.
2. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio ahora resalta
la siguiente línea de ejecución. Como se muestra en la ilustración, el código tarda en ejecutarse menos de
una milésima de segundo entre la última instrucción y esta. args sigue siendo la única variable declarada y
la ventana de consola sigue estando en blanco.
1. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio resalta la
instrucción que incluye la asignación de variables name . La ventana Automático muestra que name es
null (en C#) o Nothing (en Visual Basic), y la ventana de consola muestra la cadena "What is your name?".
2. Para responder a la solicitud, escriba una cadena en la ventana de consola y presione Entrar. La consola no
responde y la cadena que especifique no se muestra en la ventana de la consola, pero el método
Console.ReadLine capturará en cambio la entrada.
3. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio resalta la
instrucción que incluye la asignación de variables date (en C#) o currentDate (en Visual Basic). La ventana
Automático muestra el valor de propiedad DateTime.Now y el valor devuelto por la llamada al método
Console.ReadLine. La ventana de la consola también muestra la cadena especificada cuando se solicitó la
entrada.
4. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. La ventana Automático
muestra el valor de la variable date tras la asignación desde la propiedad DateTime.Now. La ventana de
consola permanece sin cambios.
5. Seleccione Depurar > Paso a paso por instrucciones o presione la tecla F11. Visual Studio llama al
método Console.WriteLine(String, Object, Object). Los valores de las variables date (o currentDate ) y
name aparecen en la ventana Automático y la ventana de consola muestra la cadena con formato.
6. Seleccione Depurar > Paso a paso para salir o presione la tecla Mayús y la tecla F11. Esta acción detiene
la ejecución paso a paso. La ventana de la consola muestra un mensaje y espera a que presione una tecla.
7. Presione cualquier tecla para cerrar la ventana de consola y salir del modo de depuración.
Cuando presiona F5 o selecciona Compilar solución en el menú Compilar, Visual Studio compila la versión de
lanzamiento de la aplicación de consola. Puede probarla como hizo con la versión de depuración de la aplicación.
Cuando haya terminado de depurar la aplicación, el siguiente paso es publicar una versión implementable de la
aplicación. Para obtener más información sobre cómo hacerlo, vea Publicación de la aplicación Hola a todos con
Visual Studio 2017.
Publicación de la aplicación Hola a todos con Visual
Studio 2017
11/01/2018 • 4 min to read • Edit Online
En Compilación de una aplicación Hola a todos en C# con .NET Core en Visual Studio 2017 o Compilación de una
aplicación Hola a todos en Visual Basic con .NET Core en Visual Studio 2017, ha compilado una aplicación de
consola Hola a todos. En Depuración de la aplicación Hola a todos en C# con Visual Studio 2017, la ha probado
con el depurador de Visual Studio. Ahora que está seguro de que funciona como se esperaba, puede publicarla
para que otros usuarios puedan ejecutarla. Al realizar la publicación, se crea el conjunto de archivos necesarios
para ejecutar la aplicación; y puede implementarlos mediante su copia en un equipo de destino.
Para publicar y ejecutar la aplicación:
1. Asegúrese de que Visual Studio esté compilando la versión de lanzamiento de la aplicación. Si es necesario,
cambie la configuración de compilación en la barra de herramientas de Depurar a Versión.
2. Haga clic con el botón derecho en el proyecto HelloWorld (no en la solución HelloWorld) y seleccione
Publicar en el menú. También puede seleccionar Publicar Hola a todos en el menú principal Compilar
de Visual Studio.
3. Abra una ventana de consola. Por ejemplo, en el cuadro de texto Escriba aquí para ejecutar la búsqueda
de la barra de tareas de Windows, escriba Command Prompt (o cmd para abreviar) y abra una ventana de
consola seleccionando la aplicación de escritorio Símbolo del sistema o presionando Entrar si está
seleccionada en los resultados de búsqueda.
4. Vaya a la aplicación publicada en el subdirectorio bin\release\PublishOutput del directorio del proyecto de
la aplicación. Como se muestra en la ilustración siguiente, el resultado publicado incluye los siguientes
cuatro archivos:
HelloWorld.deps.json
Archivo de dependencias de tiempo de ejecución de la aplicación. Define los componentes
principales de .NET y las bibliotecas (incluida la biblioteca de vínculos dinámicos que contiene la
aplicación) necesitan para ejecutar la aplicación. Para obtener más información, consulte archivos de
configuración en tiempo de ejecución.
HelloWorld.dll
El archivo que contiene la aplicación. Es una biblioteca de vínculos dinámicos que se pueden ejecutar
mediante la especificación de la dotnet HelloWorld.dll comando en una ventana de consola.
HelloWorld.pdb (opcional para la implementación)
Un archivo que contiene los símbolos de depuración. No necesita implementar este archivo junto
con su aplicación, aunque se debe guardar en caso de que necesite depurar la versión publicada de
la aplicación.
HelloWorld.runtimeconfig.json
Archivo de configuración de la aplicación en tiempo de ejecución. Identifica la versión de .NET Core
que la aplicación se ha compilado. Para obtener más información, consulte archivos de
configuración en tiempo de ejecución.
El proceso de publicación crea una implementación dependiente del marco, que es un tipo de implementación
donde la aplicación publicada se ejecutará en cualquier plataforma compatible con .NET Core con .NET Core
instalado en el sistema. Los usuarios pueden ejecutar la aplicación mediante la emisión del comando
dotnet HelloWorld.dll desde una ventana de consola.
Para más información sobre cómo publicar e implementar aplicaciones de .NET Core, consulte Implementación de
aplicaciones .NET Core.
Creación de una biblioteca de clases con C# y .NET
Core en Visual Studio 2017
11/01/2018 • 4 min to read • Edit Online
Una biblioteca de clases define los tipos y los métodos que se llaman desde una aplicación. Una biblioteca de
clases que tiene como destino .NET Standard 2.0, lo que permite que cualquier implementación .NET que admita
esa versión de .NET Standard pueda llamar a su biblioteca. Cuando termine la biblioteca de clases, puede decidir si
quiere distribuirla como un componente de terceros o si la quiere incluir como un componente empaquetado con
una o varias aplicaciones.
NOTA
Para ver una lista de las versiones de .NET Standard y las plataformas que admiten, vea .NET Standard.
En este tema, se creará una sencilla biblioteca de utilidades que contiene un único método de control de cadenas.
Se implementará como un método de extensión de modo que se pueda llamar como si fuera un miembro de la
clase String.
3. Compruebe para asegurarse de que nuestra biblioteca tiene como destino la versión correcta de .NET
Standard. Haga clic con el botón derecho en el proyecto de la biblioteca en las ventanas del Explorador de
soluciones y, después, seleccione Propiedades. El cuadro de texto Plataforma de destino muestra que
nos referimos a .NET Standard 2.0.
4. Reemplace el código de la ventana de código por el código siguiente y guarde el archivo:
using System;
namespace UtilityLibraries
{
public static class StringLibrary
{
public static bool StartsWithUpper(this String str)
{
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsUpper(ch);
}
}
}
Paso siguiente
La biblioteca se ha creado correctamente. Como no se ha llamado a ninguno de los métodos, no se sabe si
funciona como estaba previsto. El siguiente paso en el desarrollo de la biblioteca consiste en probarla mediante
un proyecto de prueba unitaria.
Prueba de una biblioteca de clases con .NET Core en
Visual Studio 2017
11/01/2018 • 18 min to read • Edit Online
En Building a class library with C# and .NET Core in Visual Studio 2017 (Creación de una biblioteca de clases con
C# y .NET Core en Visual Studio 2017) o Building a class library with Visual Basic and .NET Core in Visual Studio
2017 (Creación de una biblioteca de clases con Visual Basic y .NET Core en Visual Studio 2017), ha creado una
biblioteca de clases simple que agrega un método de extensión a la clase String. Ahora, creará una prueba unitaria
para asegurarse de que funciona según lo esperado. Agregará su proyecto de prueba unitaria a la solución que ha
creado en el tema anterior.
También puede aplicar el atributo [ExpectedException] a un método de prueba. Indica el tipo de excepción que se
espera que inicie un método de prueba. La prueba dará error si no se inicia la excepción especificada.
Al probar el método StringLibrary.StartsWithUpper , quiere proporcionar un número de cadenas que comiencen
con un carácter en mayúsculas. Espera que el método devuelva true en estos casos, por lo que puede llamar al
método Assert.IsTrue(Boolean, String). Del mismo modo, quiere proporcionar un número de cadenas que
comiencen con algo que no sea un carácter en mayúsculas. Espera que el método devuelva false en estos casos,
por lo que puede llamar al método Assert.IsFalse(Boolean, String).
Dado que el método de biblioteca controla cadenas, quiere asegurarse también de que controla correctamente
una cadena vacía ( String.Empty ), una cadena válida que no tenga caracteres y cuyo Length sea 0, y una cadena
null que no se haya inicializado. Si StartsWithUpper se llama como un método de extensión en una instancia
String, no se puede pasar una cadena null . En cambio, también se puede llamar directamente como un método
estático y pasarse como un argumento String único.
Definirá tres métodos, cada uno de los cuales llama a su método Assert repetidamente para cada elemento de una
matriz de cadenas. Dado que el método de prueba produce un error tan pronto como encuentra el primer error,
llamará a una sobrecarga de método que le permita pasar una cadena que indique el valor de cadena usado en la
llamada al método.
Para crear los métodos de prueba:
C#
Visual Basic
1. Reemplace el código de la ventana de código UnitTest1.cs por el código siguiente:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UtilityLibraries;
namespace StringLibraryTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestStartsWithUpper()
{
// Tests that we expect to return true.
string[] words = { "Alphabet", "Zebra", "ABC", "Αθήνα", "Москва" };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsTrue(result,
String.Format("Expected for '{0}': true; Actual: {1}",
word, result));
}
}
[TestMethod]
public void TestDoesNotStartWithUpper()
{
// Tests that we expect to return false.
string[] words = { "alphabet", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство",
"1234", ".", ";", " " };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word, result));
}
}
[TestMethod]
public void DirectCallWithNullOrEmpty()
{
// Tests that we expect to return false.
string[] words = { string.Empty, null };
foreach (var word in words)
{
bool result = StringLibrary.StartsWithUpper(word);
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word == null ? "<null>" : word, result));
}
}
}
}
Observe que la prueba de caracteres en mayúsculas del método TestStartsWithUpper incluye la letra
mayúscula griega alfa (U+0391) y la letra mayúscula cirílica EM (U+041C), y la prueba de caracteres en
minúsculas del método TestDoesNotStartWithUpper incluye la letra griega minúscula alfa (U+03B1) y la letra
cirílica minúscula Ghe (U+0433).
2. En la barra de menús, seleccione Archivo > Guardar UnitTest1.cs como. En el cuadro de diálogo Guardar
archivo como, seleccione la flecha junto al botón Guardar y seleccione Guardar con codificación.
1. En el cuadro de diálogo Confirmar guardar como, seleccione el botón Sí para guardar el archivo.
2. En el cuadro de diálogo Opciones avanzadas para guardar, seleccione Unicode (UTF-8 con firma) -
Página de códigos 65001 desde la lista desplegable Codificación y seleccione Aceptar.
Si obtiene un error al guardar el código fuente en un archivo con codificación UTF-8, Visual Studio puede
guardarlo como un archivo ASCII. Cuando eso suceda, el tiempo de ejecución no descodifica correctamente
los caracteres UTF-8 del rango ASCII, y los resultados de la prueba no serán precisos.
3. En la barra de menús, seleccione Prueba > Ejecutar > Todas las pruebas. Se abre la ventana del
Explorador de pruebas y muestra que las pruebas se han ejecutado correctamente. Las tres pruebas se
muestran en la sección Pruebas superadas y en la sección Resumen se informa del resultado de la serie
de pruebas.
Control de errores en las pruebas
Su serie de pruebas no tuvo errores, pero vamos a cambiarla un poco para que uno de los métodos de prueba
produzca un error:
1. Modifique la matriz words en el método TestDoesNotStartWithUpper para incluir la cadena "Error". No
necesita guardar el archivo porque Visual Studio guarda automáticamente archivos abiertos cuando se crea
una solución para ejecutar pruebas.
2. Ejecute la prueba seleccionando Prueba > Ejecutar > Todas las pruebas de la barra de menús. En la
ventana Explorador de pruebas se indica que dos pruebas se han realizado correctamente y que una ha
finalizado con errores.
2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto StringLibrary y seleccione
Compilar desde el menú contextual para volver a compilar la biblioteca.
3. Ejecute las pruebas unitarias seleccionando Prueba > Ejecutar > Todas las pruebas de la barra de menús.
Las pruebas se superan.
Ahora que ha terminado de probar la biblioteca, el siguiente paso es ponerla a disposición de los llamadores.
Puede empaquetarla con una o varias aplicaciones o puede distribuirla como un paquete NuGet. Para obtener más
información, vea Consumo de una biblioteca de clases .NET Standard.
Consumo de una biblioteca de clases con .NET Core
en Visual Studio 2017
11/01/2018 • 11 min to read • Edit Online
Una vez que haya creado una biblioteca de clases siguiendo los pasos de Building a C# class library with .NET Core
in Visual Studio 2017 (Creación de una biblioteca de clases de C# con .NET Core en Visual Studio 2017) o Building
a Visual Basic class library with .NET Core in Visual Studio 2017 (Creación de una biblioteca de clases de Visual
Basic con .NET Core en Visual Studio 2017), pruébela en Testing a class library with .NET Core in Visual Studio
2017 (Prueba de una biblioteca de clases con .NET Core en Visual Studio 2017), y compile una versión de
lanzamiento de la biblioteca; el paso siguiente consiste en hacer que esté disponible para los autores de llamadas.
Existen dos maneras de hacerlo:
Si una única solución va a usar la biblioteca (por ejemplo, si es un componente de una sola aplicación más
grande), se puede incluir como proyecto en la solución.
Si la biblioteca va a ser accesible con carácter general, puede distribuirla como un paquete NuGet.
4. Inicialmente, el proyecto no tiene acceso a la biblioteca de clases. Para permitir que se llame a métodos de la
biblioteca de clases, puede crear una referencia a la biblioteca de clases. En el Explorador de soluciones,
haga clic con el botón derecho en el nodo Dependencias del proyecto ShowCase y seleccione Agregar
referencia.
5. En el cuadro de diálogo Administrador de referencias, seleccione StringLibrary, el proyecto de biblioteca
de clases, y pulse el botón Aceptar.
6. En la ventana de código del archivo Program.cs, reemplace todo el código por el código siguiente:
using System;
using UtilityLibraries;
class Program
{
static void Main(string[] args)
{
int rows = Console.WindowHeight;
Console.Clear();
do
{
if (Console.CursorTop >= rows || Console.CursorTop == 0)
{
Console.Clear();
Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press
<Enter>:\n");
}
string input = Console.ReadLine();
if (String.IsNullOrEmpty(input)) break;
Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
$"{(input.StartsWithUpper() ? "Yes" : "No")}\n");
} while (true);
}
}
El código usa la propiedad Console.WindowHeight para determinar el número de filas de la ventana de
consola. Siempre que la propiedad Console.CursorTop sea mayor o igual que el número de filas de la
ventana de consola, el código borra la ventana de consola y muestra un mensaje al usuario.
El programa le pide al usuario que escriba una cadena. Indica si la cadena comienza con un carácter en
mayúsculas. Si el usuario presiona la tecla Entrar sin especificar una cadena, la aplicación finaliza y la
ventana de consola se cierra.
7. Si es necesario, cambie la barra de herramientas para compilar la versión de depuración del proyecto
ShowCase . Compile y ejecute el programa haciendo clic en la flecha verde en el botón Presentación.
La aplicación que usa esta biblioteca se puede depurar y publicar siguiendo los pasos indicados en Debugging
your Hello World Application with Visual Studio 2017 (Depuración de la aplicación Hola a todos con Visual Studio
2017) y Publishing your Hello World Application with Visual Studio 2017 (Publicación de la aplicación Hola a todos
con Visual Studio 2017).
1. Abra una ventana de consola. Por ejemplo, en el cuadro de texto Pregúntame cualquier cosa de la barra
de tareas de Windows, escriba Command Prompt (o cmd para abreviar) y abra una ventana de consola
seleccionando la aplicación de escritorio Símbolo del sistema o presionando Entrar si está seleccionada en
los resultados de búsqueda.
2. Vaya al directorio del proyecto de la biblioteca. A menos que haya reconfigurado la ubicación típica del
archivo, se encuentra en el directorio Documentos\Visual Studio
2017\Projects\ClassLibraryProjects\StringLibrary. El directorio contiene el código fuente y un archivo de
proyecto, StringLibrary.csproj.
3. Emita el comando dotnet pack --no-build : La utilidad dotnet genera un paquete con una extensión
.nupkg.
SUGERENCIA
Si el directorio que contiene dotnet.exe no está en la ruta de acceso, puede encontrar su ubicación escribiendo
where dotnet.exe en la ventana de consola.
Para más información sobre la creación de paquetes NuGet, consulte Cómo crear un paquete NuGet con
herramientas multiplataforma .
Introducción a C# y Visual Studio Code
11/01/2018 • 5 min to read • Edit Online
.NET Core ofrece una plataforma modular y rápida para crear aplicaciones que se ejecutan en Windows, Linux y
macOS. Use Visual Studio Code con la extensión de C# para disfrutar de una sólida experiencia de edición con
compatibilidad total para C# IntelliSense (completado de código inteligente) y para depuración.
Requisitos previos
1. Instale Visual Studio Code.
2. Instale el SDK de .NET Core.
3. Instale la extensión de C# desde Visual Studio Code Marketplace.
Hello World
Se va a empezar con un programa "Hola mundo" sencillo basado en .NET Core:
1. Abrir un proyecto:
Abra Visual Studio Code.
Haga clic en el icono del explorador en el menú de la izquierda y después haga clic en Abrir carpeta.
Seleccione archivo > Abrir carpeta en el menú principal para abrir la carpeta que desea que el
proyecto de C# y haga clic en seleccionar la carpeta. En nuestro ejemplo, estamos creando una
carpeta para nuestro proyecto denominado HelloWorld.
También puede ver un breve tutorial de vídeo para obtener ayuda del programa de instalación en Windows,
macOS o Linux.
Depuración
1. Haga clic en el archivo Program.cs para abrirlo. La primera vez que abra un archivo de C# en Visual Studio
Code, OmniSharp se carga en el editor.
2. Código de Visual Studio debe solicitarle que agregue los activos que faltan para compilar y depurar la
aplicación. Seleccione Sí.
3. Para abrir la vista Depurar, haga clic en el icono de depuración en el menú de la izquierda.
4. Busque la flecha verde en la parte superior del panel. Asegúrese de que .NET Core Launch (console) está
seleccionado en el menú desplegable que está junto a la flecha.
5. Agregar un punto de interrupción al proyecto haciendo clic en el editor margen, que es el espacio de la
izquierda de los números de línea en el editor, junto a la línea 9.
6. Para iniciar la depuración, seleccione F5 o en la flecha verde. El depurador detiene la ejecución del
programa cuando alcanza el punto de interrupción establecido en el paso anterior.
Durante la depuración, puede ver las variables locales en el panel superior izquierdo o utilizar la consola
de depuración.
7. Seleccione la flecha verde en la parte superior para continuar la depuración o seleccione el cuadrado rojo
que se encuentra arriba para detenerla.
SUGERENCIA
Para obtener más información y sugerencias sobre solución de problemas en relación con la depuración de .NET Core con
OmniSharp en Visual Studio Code, vea Instructions for setting up the .NET Core debugger (Instrucciones para configurar el
depurador de .NET Core).
Vea también
Setting up Visual Studio Code (Configuración de Visual Studio Code)
Debugging in Visual Studio Code (Depuración en Visual Studio Code)