Historia
Durante el desarrollo del .NET Framework, sus bibliotecas de clases fueron escritas mediante
un compilador de código administrado denominado Simple Managed C (SMC). En enero de
1999, Anders Hejlsberg, creador de lenguajes como Turbo Pascal y Delphi, formó un equipo
para diseñar un nuevo lenguaje, cuyo nombre inicial fue Cool (C-like Object Oriented
Language). Microsoft quiso mantener dicho nombre como definitivo, pero por razones de
registro de marca tuvo que echarse para atrás.
En julio de 2000, durante la Professional Developers Conference, el lenguaje había sido
renombrado a C# y todas las librerías de clases y el runtime de [Link] fueron portadas a C#.
Los creadores del lenguaje Java decían que C# era un clon de Java sin ninguna novedad ni
innovación a lo que Anders Hejlsberg contestó que “C# es ‘no un clon de Java’ y es mucho más
cercano a C++ en su diseño”.
Desde el lanzamiento de C# 2.0 en noviembre de 2005, los lenguajes C# y lenguajes Java han
evolucionado en trayectorias cada vez más divergentes, convirtiéndose en algo menos
similares el uno del otro. Una de las primeras diferencias principales vino con la adición de los
genéricos en ambos lenguajes, con implementaciones muy diferentes.
Además, C# ha añadido varias características importantes para dar cabida a programación de
estilo funcional, que culmina con las extensiones LINQ con C# 3.0 y el empleo de tipos
anónimos, métodos de extensión y expresiones lambda. Las extensiones LINQ ayudan a los
desarrolladores a reducir mucha cantidad de código “repetitivo” que está incluido en las tareas
comunes como consultar una base de datos. análisis de un archivo XML o búsqueda a través de
una estructura de datos, cambiando el énfasis sobre la lógica de programación real para
ayudar a mejorar la legibilidad y mantenibilidad.
Tipos de dato
Tabla de Tipos Integrados Simples
Todos los tipos integrados simples del lenguaje C#, son alias de tipos .NET Framework
predefinidos en el espacio de nombres System. Por ejemplo, int es un alias de System.Int32.
Tipo C# Intervalo Tamaño / Precisión Tipo .NET Default
Entero de 8 bits con
sbyte De -128 a 127 [Link] 0
signo
Entero de 8 bits sin
byte De 0 a 255 [Link] 0
signo
Entero de 16 bits con
short De -32 768 a 32 767 System.Int16 0
signo
Entero de 16 bits sin
ushort De 0 a 65.535 System.UInt16 0
signo
Entero de 32 bits con
int De -[Link] a [Link] System.Int32 0
signo
Entero de 32 bits sin
uint De 0 a [Link] System.UInt32 0
signo
De -[Link].854.775.808 a Entero de 64 bits con
long System.Int64 0
[Link].854.775.807 signo
Entero de 64 bits sin
ulong De 0 a [Link].709.551.615 System.UInt64 0
signo
float De ±1,5 x 10-45 a ±3,4 x 1038 7 dígitos [Link] 0.0f
double De ±5,0 × 10−324 a ±1,7 × 10308 15-16 dígitos [Link] 0.0d
decima 28-29 dígitos
De ±1,0 x 10-28 to ±7,9228 x 1028 [Link] 0m
l significativos
Carácter Unicode de
char U+0000 a U+FFFF [Link] \x0000
16 bits
bool Booleano true, false [Link] false
La siguiente tabla muestra todos los tipos de datos integrados simples.
Tabla de Tipos Integrados No Simples
Los tipos de datos integrados no simples son:
Tipo C# Descripción Tipo .NET
Es la clase base para todos los demás tipos, incluidos los tipos
object [Link]
integrados simples.
string Una secuencia de caracteres Unicode. [Link]
dynami Es un tipo diseñado para ser usado con assemblies escritos en lenguajes No corresponde a un tipo
c dinámicos .NET
Literales
C # | Literales
Los valores fijos se llaman Literales . Literal es un valor que utilizan las variables. Los valores
pueden ser enteros, flotantes o de cadena, etc.
// Aquí 100 es una constante / literal.
int x = 100;
Los literales pueden ser de los siguientes tipos:
Literales enteros
Literales de punto flotante
Literales de personajes
Literales de cuerda
Literales nulos
Literales booleanos
LINQ
LINQ o Language Integrated Query son un conjunto herramientas de Microsoft para realizar
todo tipo de consultas a distintas fuentes de datos: objetos, xmls, bases de datos, etc... Para
ello, usa un tipo de funciones propias, que unifica las operaciones más comunes en todos los
entornos, con esto, se consigue un mismo lenguaje para todo tipo de tareas con datos.
LINQ en C#
La sintaxis es parecida a la existente en SQL, pero con la ventaja de que tenemos la potencia de
.net y visual studio a la hora de codificar. Ahora vamos a ver un sencillo ejemplo, con una
consulta linq en c# para objetos (LINQ to objetcs):
var lista = from c in coleccion
where c.propiedad1 == true
select c;