FUNDAMENTOS DE LENGUAJE C#
En esta publicación he incluido los siguientes temas, relacionados con los fundamentos del lenguaje Visual C#.
- Creador del lenguaje C#
- Elementos del lenguaje C#
- Tipos de datos en C#
reseña sobre el creador de c#
Anders Hejlsberg nació en Copenhague (Dinamarca) en 1960. Ha creado el lenguaje Turbo Pascal y ha liderado los equipos que han desarrollado Delphi y C#.
Desde 2000 lidera el equipo de desarrollo del lenguaje C#.
Desde 2000 lidera el equipo de desarrollo del lenguaje C#.
Anders montó una tienda con unos amigos en Copenhague que distribuía sistemas de contabilidad, la empresa se llamaba PolyData. Curiosamente PolyData empezó como como distribuidor de productos de Microsoft, competidor de Borland, las otras dos empresas donde Anders ha trabajado.
Mientras Borland tenía gran éxito comercial con Turbo Pascal, Anderssiguió con su empresa, hasta que en 1989 sus finanzas no iban bien y se mudó a California para incoroprarse como ingeniero jefe de Borland.En la época que trabajó para Borland (1989-1996) mejoró su Turbo Pascal y lideró como arquitecto jefe el sustituto de Turbo Pascal: Delphi.En 1996 dejó Borland para fichar por Microsoft, donde empezó destacando con el lenguaje J++ y las Windows Foundation Classes.
Mientras Borland tenía gran éxito comercial con Turbo Pascal, Anderssiguió con su empresa, hasta que en 1989 sus finanzas no iban bien y se mudó a California para incoroprarse como ingeniero jefe de Borland.En la época que trabajó para Borland (1989-1996) mejoró su Turbo Pascal y lideró como arquitecto jefe el sustituto de Turbo Pascal: Delphi.En 1996 dejó Borland para fichar por Microsoft, donde empezó destacando con el lenguaje J++ y las Windows Foundation Classes.
Anders Hejlsberg es un compañero técnico en la División de Desarrollo . Es un creador influyente de herramientas de desarrollo y lenguajes de programación. Jefe de diseño del lenguaje de programación C # y un participante clave en el desarrollo de la . NET framework Microsoft . Desde su lanzamiento inicial en 2000 , el lenguaje de programación C # ha sido ampliamente adoptado y ahora está normalizado por ECMA e ISO . Antes de su trabajo en C # y el marco NET.
Hejlsberg fue un arquitecto para las Windows Foundation Classes de Visual J + + y el desarrollo . Antes de unirse a Microsoft en 1996 , Hejlsberg fue uno de los primeros empleados de Borland International Inc. Como ingeniero principal , fue el autor original de Turbo Pascal, un entorno de desarrollo integrado revolucionario y principal arquitecto de su sucesor , de Delfos. Hejlsberg co -autor de " El Lenguaje de Programación C # " , publicado por Addison Wesley, y ha recibido numerosas patentes de software. En 2001, fue galardonado con el prestigioso Dr. Dobbs Premio de Excelencia en Programación . Estudió ingeniería en la Universidad Técnica de Dinamarca .
C# (leído en inglés “C Sharp” y en español “C Almohadilla”) es el nuevo lenguaje de propósito general diseñado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuthy Anders Hejlsberg, éste último también conocido por haber sido el diseñador del lenguaje Turbo Pascal y la herramienta RAD Delphi.
¿Qué lenguaje de programación prefieres?
¿elementos del lenguaje de programación c#?
Entre los elementos del lenguaje tenemos los siguientes
•Common Language Runtime (CLR)
•Microsoft Intermediate Language(MSIL)
•Metadatos
•Ensamblados
•Librería de clase base (BCL)
•Common Type System (CTS)
•Common Language Specification (CLS)
Common Language Runtime (CLR)
El Common Language Runtime(CLR) es el núcleo de la plataforma .NET. Es el motor encargado de gestionar la ejecución de las aplicaciones para ella desarrolladas y a las que ofrece numerosos servicios que simplifican su desarrollo y favorecen su fiabilidad y seguridad.
Microsoft Intermediate Language (MSIL)
Ninguno de los compiladores que generan código para la plataforma .NET produce código máquina para CPUs x86 ni para ningún otro tipo de CPU concreta, sino que generan código escrito en el lenguaje intermedio conocido como Microsoft Intermediate Lenguage(MSIL) El CLR da a las aplicaciones la sensación de que se están ejecutando sobre una máquina virtual, y precisamente MSIL es el código máquina de esa máquina virtual. Es decir, MSIL es el único código que es capaz de interpretar el CLR, y por tanto cuando se dice que un compilador genera código para la plataforma .NET lo que se está diciendo es que genera MSIL.
Metadatos
En la plataforma .NET se distinguen dos tipos de módulos de código compilado: ejecutables (extensión .exe) y librerías de enlace dinámico (extensión .dll generalmente) Ambos son ficheros que contienen definiciones de tipos de datos, y la diferencia entre ellos es que sólo los primeros disponen de un método especial que sirve de punto de entrada a partir del que es posible ejecutar el código que contienen haciendo una llamada desde la línea de comandos del sistema operativo.
Ensamblados
Un ensamblado es una agrupación lógica de uno o más módulos o ficheros de recursos (ficheros .GIF, .HTML, etc.) que se engloban bajo un nombre común. Un programa puede acceder a información o código almacenados en un ensamblado sin tener que conocer cuál es el fichero en concreto donde se encuentran, por lo que los ensamblados nos permiten abstraernos de la ubicación física del código que ejecutemos o de los recursos que usemos.
Librería de clase base (BCL)
La Librería de Clase Base (BCL) es una librería incluida en el .NET Frameworkformada por cientos de tipos de datos que permiten acceder a los servicios ofrecidos por el CLR y a las funcionalidades más frecuentemente usadas a la hora de escribir programas.Además, a partir de estas clases prefabricadas el programador puede crear nuevas clases que mediante herencia extiendan su funcionalidad y se integren a la perfección con el resto de clases de la BCL.
Common Type System (CTS)
El Common Type System(CTS) o Sistema de Tipo Común es el conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte. Es decir, aunque cada lenguaje gestionado disponga de su propia sintaxis para definir tipos de datos, en el MSIL resultante de la compilación de sus códigos fuente se han de cumplir las reglas del CTS.
Los modificadores de acceso admitidos son:
Modificador
|
Código desde el que es accesible el miembro
|
public
|
Cualquier código
|
private
|
Código del mismo tipo de dato
|
family
|
Código del mismo tipo de dato o de hijos de éste.
|
assembly
|
Código del mismo ensamblado
|
family and assembly
|
Código del mismo tipo o de hijos de éste ubicado en el mismo ensamblado
|
family or assembly
|
Código del mismo tipo o de hijos de éste, o código ubicado en el mismo ensamblado
|
Common Language Specification (CLS)
El Common Language Specification(CLS) o Especificación del Lenguaje Común es un conjunto de reglas que han de seguir las definiciones de tipos que se hagan usando un determinado lenguajegestionado si se desea que sean accesibles desde cualquier otro lenguaje gestionado.
Tipos de datos
Los tipos de datos que utiliza C# son clasificados en cuatro grupos.
Tipos primitivos
Variables y Constantes
Enumeraciones
Arrays(Matrices)
Los tipos en C# se clasifican en tipos : Valor y Refencia. Una variable de tipo valoralmacena directamente un valor (dato en general) mientras que una variable de un tipo referencia lo que permite almacenar es una referencia a un objeto(posición de memoria donde esta el objeto)
Por valor y por referencia
Los tipos por valor difieren de los tipos por referencia en que las variables de los tipos por valor contienen directamente su valor, mientras que las variables de los tipos por referencia almacenan referencias a objetos.
Con los tipos por referencia, es posible que dos variables se refieran al mismo objeto, y por tanto es posible que las operaciones sobre una variable afecten al objeto al que hace referencia otra variable.
Con los tipos por valor, cada variable tienen su propia copia de los datos, y las operaciones sobre una no afectará a la otra.
Tipos primitivos equivalencias
Tipo C#
|
Nombre para la plataforma Mono/.NET
|
Con signo?
|
Bytes utilizados
|
Rango
|
bool
|
System.Boolean
|
No
|
1
|
verdadero o falso
|
byte
|
System.Byte
|
No
|
1
|
0 hasta 255
|
sbyte
|
System.SByte
|
Si
|
1
|
-128 hasta 127
|
short
|
System.Int16
|
Si
|
2
|
-32.768 hasta 32.767
|
ushort
|
System.Uint16
|
No
|
2
|
0 hasta 65535
|
int
|
System.Int32
|
Si
|
4
|
-2.147.483.648 hasta 2.147.483.647
|
uint
|
System.Uint32
|
No
|
4
|
0 hasta 4.394.967.395
|
long
|
System.Int64
|
Si
|
8
|
-9.223.372.036.854.775.808 hasta 9.223.372.036.854.775.807
|
Tipo C#
|
Nombre para la plataforma Mono/.NET
|
Con signo?
|
Bytes utilizados
|
Rango
|
ulong
|
System.Uint64
|
No
|
8
|
0 hasta 18446744073709551615
|
float
|
System.Single
|
Si
|
4
|
Approximadamente ±1.5E-45 hasta ±3.4E38 con 7 cifras significativas
|
double
|
System.Double
|
Si
|
8
|
Approximadamente ±5.0E-324 hasta ±1.7E308 con 7 cifras significativas
|
decimal
|
System.Decimal
|
Si
|
12
|
Approximadamente ±1.0E-28 hasta ±7.9E28 con 28 ó 29 cifras significativas
|
char
|
System.Char
|
2
|
Cualquier carácter Unicode (16 bits)
|
Tipos enteros
Los tipos que sirven para almacenar números enteros son: byte, sbyte. short, ushort, int, uint, long y ulong.
Probablemente el tipo más utilizado es el int, pués se utiliza para controlar matrices, inidizar arreglos además de las operaciones normales con enteros.
ejemplo
using System;
class Enteros{
public static void Main()
{
int Minuto = 60; //segundos por minuto
int Hora = Minuto*60;
int Dia = Hora*24;
long Anio = Dia*365;
Console.WriteLine("Segundos en un dia: {0}", Dia);
Console.WriteLine("Segundos en un año: {0}", Anio);
}
}
El identificador {0} dentro de la cadena de texto indica que se sustituye {0} por el primer argumento. si hubiera más de un argumento, se seguiría con {1}, y así sucesivamente. Por ejemplo, las dos líneas que utilizan Console.WriteLine se pueden simplificar así:
Console.WriteLine("En un dia: {0}; en un año: {1}", Dia, Anio);
Tipos de coma flotante
Los tipos de coma flotante sirven para representar a números con parte fraccionaria.
La representación por supuesto puede no ser exacta, bien por errores de la máquina, bien porque el número de decimales que se puede alojar es finito.
Existen dos clases de tipos de punto flotante, float y double. De los dos, el más usado es double, pués es el valor que devuelven la mayoría de las funciones matemáticas de la librería base.
ejemplo
using System; class Flotante{
public static void Main()
{
int a = 2;
double log2 = Math.Log(2);
double raiz2 = Math.Sqrt(2);
Console.WriteLine("El logaritmo de dos es {0}", log2 );
Console.WriteLine("La raiz de dos es {0}", raiz2 );
}
}
Salida:
El logaritmo de dos es 0.693147180559945
La raizde dos es 1.4142135623731
muy buna info. me costo mucho entender (aun me cuesta jeje) el funcionamiento de .NET, pero la forma en que lo expones es bien entendible, gracias por el curso, me esta sirviendo
ResponderEliminarExcellent post. I was always checking this blog, and I’m impressed! Extremely useful info specially the last part, I care for such information a lot. I was exploring this particular info for a long time. Thanks to this blog my exploration has ended. Microsoft Dynamics 365 Sales Credit Card Processing
ResponderEliminarAwesome and interesting article. Great things you've always shared with us. Thanks. Just continue composing this kind of post. Microsoft Dynamics 365 Business Central Credit Card Processing
ResponderEliminar