jueves, 8 de mayo de 2014

C Sharp y características

C#, es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft siendo parte de su plataforma .NET, aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). Su sintaxis básica se deriva de C/C++ y usa el modelo de objetos de la plataforma .NET, es similar al de Java, también incluye mejoras derivadas de otros lenguajes.

• Tipos de datos y declaración de Variables
En C#, se manejan datos de tipo Carácter y cadena, Numéricos, Lógicos (booleanos).
Variables más usadas en C#:
Existen muchas variables en C#, pero las más usadas son:
- string: para cadena de texto, va entre comillas dobles, un ejemplo de cómo se declara o se usa:
string = "Esta es una cadena de texto en C#"
- Char: solo un carácter, ejemplo: 'c', 'k', etc.
- int: números enteros, excluye números decimales y se declara así:
int = 5
- double: números con decimales que pueden ser largos, ejemplo 585.956485 y se declara así:
double = 585.956485
- Float: similar al double, pero no puede tener muchos decimales, lleva siempre una f al final, ejemplo: 6.35f, 8.2f.
La declaración es sensible a mayúsculas y minúsculas, no puede empezar por un número, simbolo, ni contener más de 511 caracteres.
- bool: de tipo verdadero o falso, ejemplo:
bool = false;
bool = true;
Variables menos usadas en C#:


Operaciones en C#
En C# se realizan operaciones aritméticas como suma, restas, multiplicación, división, residuo, etc. ejemplo:
2 + 3 8 – 4 5 *4 9 / 3 9 % 2 (para obtener el residuo, aquí el resultado es 1)
Otros son:
- Concatenación +
- Incremento, decremento ++ --
- Desplazamiento << >>
- Asignación = ^= <<= >>=
- Conversión ( )


• Condicionales
Instrucciones de control, estas son:
Las instrucciones son básicamente, iguales que en C, C++ y Java, estas son: if-else, for, while, do-while, switch, return, break, continue.
- Condicional (if): Son para definir cosas como: Si(if) el carro vale 20 millones o menos lo compro, Sino(else) no lo compro, en pseudocódigo se declara de la siguiente forma:
if( carro <=20000000)
{ compro el carro
}
else
{ no compro el carro, debo seguir buscando
}

En el lenguaje C#, el dinero es un entero, y tenemos 20000000 de pesos, y el carro también puede ser un entero que puede tener un valor variable, entonces se declara de la siguiente manera:

int dinero = 20000000;
int preciocarro = 19000000;
if (preciocarro <= 20000000)
{
MessageBox.Show("Lo compro!!!");
}
else
{
MessageBox.Show("No alcanza y hay que seguir buscando");
}
El MessageBox muestra en pantalla el mensaje que se quiera poner independiente del tipo de operación, por ejemplo en vez de "No alcanza y hay que seguir buscando", se puede poner:
MessageBox.Show("Venga, hágame una rebajita…");

Switch
Permite ejecutar varias operaciones para el caso de que una variable tenga un valor entero dado. La ejecución pasa por todos los case hasta encontrar uno con el valor de la variable, y ejecuta desde allí hasta el final del caso, ejemplo:
switch (expresión_entera) {
case (valor1): instrucciones_1;
[break;]
case (valor2): instrucciones_2;
[break;]
…..
case (valorN): instrucciones_N;
[break;]
default: instrucciones_por_defecto;
}
Veamos el caso de un sorteo, números del 1 al 5. Para que el programa indique el ganador automáticamente sería algo así:
switch (número que salió)
{
si es 1: Gana José
si es 2: Gana Luis
si es 3: Gana Ana
si es 4: Gana María
si es 5: Gana Pedro
}

En C#, sería así: Suponiendo que gano el 3,
int numero = 3;
switch (ganador)
{
case 1: MessageBox.Show("Gana José");
case 2: MessageBox.Show("Gana Luis");
case 3: MessageBox.Show("Gana Ana");
case 4: MessageBox.Show("Gana María");
case 5: MessageBox.Show("Gana Pedro");
}
En ciertos casos es más útil usar condicional o switch dependiendo del caso.
Otros son:
- For:
for (int i = 0; i < 10; i++) {
// ...
}
- while
while (i < 10) {
// ...
}
do-while:
do {
// ...
} while (true);
- foreach
foreach (char c in charList) {
// ...
}


1.3 Operadores en C#

Los operadores básicos de C#, son:
< : Menor que
> : Mayor que
<= Menor o igual
>= Mayor o igual
== Exactamente igual
&& Para declarar que se necesita el cumplimiento de dos o más condicionales
|| Para declarar que puede ser con el cumplimiento de una condicional de varias.

Ejemplo de operadores:

if (dinero >= 20000000 && preciocarro <=20000000)
{
MessageBox.Show("Puedo comprar carrito!!!!");

• Manejo de cadena y conversión de tipos:
La palabra clave string es un alias de la clase System.String de la plataforma .NET, las cadenas en C# son objetos, no matrices de caracteres; sin embargo, se puede obtener un carácter arbitrario de una cadena por medio del índice (pero no modificarlo). Las cadenas son inmutables, una vez creadas no se pueden modificar, únicamente se pueden copiar total o parcialmente.
El operador == indica si dos referencias se refieren al mismo objeto, pero si se usa este operador en dos variables tipo string no se prueba su referencia sino la igualdad del contenido entre las cadenas.
Las cadenas, se pueden concatenar mediante el operador +, por ejemplo
bool palabra = "universidad" == "universidad";

• Vectores: Las variables de tipo arreglo (array), si permiten almacenar y procesar conjuntos de datos del mismo tipo a la vez, aquí cada dato dentro del arreglo se llama: elemento del arreglo, se simboliza y procesa usando el nombre del arreglo respectivo y el subíndice indicando la posición relativa del elemento con respecto a los otros elementos del array, teniendo en cuenta que en C# la primera posición, elemento o renglón es el 0 (cero), ej.
NOMBRES

José →nombres(0)
Pedro → nombres(1)
Ana → nombres(2)
Juan → nombres(3)

Metodos: son aquellos bloques de código que se ocupan de manejar los datos de la clase., ejemplo:
acceso tipo NombreMetodo(TipoArg1 arguento1, TipoArg2 arguento2 ...)
{
// Aquí se codifica lo que tiene que hacer el método
}

• Clases: Una clase es una plantilla de la que luego se pueden crear múltiples objetos con características similares, que define atributos (variables) y métodos (funciones), comunes a los objetos de ese tipo, donde cada objeto tendrá sus propios valores pero compartirán las mismas funciones. Se debe crear una clase antes de poder crear objetos (instancias) de esa clase; el objeto es una instancia de una clase, por ejemplo:
class [nombre de la clase] {
[atributos o variables de la clase]
[métodos o funciones de la clase]
[main]
}

• Herencia: es otro tipo de relaciones entre clases, significa que se pueden crear nuevas clases partiendo de clases existentes, estas tendrán los atributos, propiedades y métodos de la 'superclase' o 'clase padre' y se le podrán añadir otros atributos, propiedades y métodos propios.

Eventos: Es lo que sucede o hace el programa para que realice un determinado botón, función, formulario, caja de texto, etc.

• Enumeraciones (enum): son tipos que agrupan un conjunto de constantes, permiten definir un conjunto de constantes integrales con nombre que pueden asignarse a una variable, así, para definir una variable la cual su valor representará un mes del año, como son doce valores que almacenará dicha variable, entonces se puede usar un tipo de enumeración, declarado con la palabra clave enum, ejemplo:
enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

Palabras reservadas del lenguaje C#:
abstract
event
new
struct
as
explicit
null
switch
base
extern
object
this
bool
false
operator
throw
break
finally
out
true
byte
fixed
override
try
case
float
params
typeof
catch
for
private
uint
char
foreach
protected
ulong
checked
goto
public
unchecked
class
if
readonly
unsafe
const
implicit
ref
ushort
continue
in
return
using
decimal
int
sbyte
virtual
default
interface
sealed
volatile
delegate
internal
short
void
do
is
sizeof
while
double
lock
stackalloc
else
long
static
enum
namespace
string