5
Capitulo 3.1 - Elementos del Lenguaje C# 20:55 // by Mustaine // C# // 1comentarios Secuencias de Escape utilizadas en el lenguaje C# Secuencia Caracter Definicion \0 NUL Caracter Nulo \n CR + LF Ir al principio de la Linea Siguiente \t HT Tabulador Horizontal \b BS Retroceso (Backspaces) \r CR Retorno de Carro sin avanze de linea \f FF Alimentacion de pagina (Solo para impresora) \' ' Comilla Simple \'' '' Comilla Doble \\ \ Barra Invertida(backslash) \0dd Caracter ASCII. Representacion Octal \xdd Caracter ASCII. Representacion Hexadecimal \udddd Caracter UNICODE. Representacion Hexadec. \a BEL Alerta, pitido(\u0007) \u VT Tabulador Vertical(\u0008) TIPOS Los tipos en C# se clasifican en tipos : Valor y Refencia. Una variablke de tipo valoralamcena directamente un valor (dato en general) mientras que una variable de un tipo referencia lo que permite almacenar es una referencia a un objeto(posicion de memoria donde esta el objeto) int suma = o; //Suma almacena un enetero CCuenta cta = null // cta permitira alamcenar una referencia a un objeto CCuenta

Elementos de Lenguaje de Cshare

Embed Size (px)

DESCRIPTION

POGRAMACION BASICA

Citation preview

Page 1: Elementos de Lenguaje de Cshare

Capitulo 3.1 - Elementos del Lenguaje C#20:55 // by Mustaine // C# // 1comentarios

Secuencias de Escape utilizadas en el lenguaje C#

Secuencia Caracter Definicion 

\0 NUL Caracter Nulo

\n CR + LF Ir al principio de la Linea Siguiente

\t HT Tabulador Horizontal

\b BS Retroceso (Backspaces)

\r CR Retorno de Carro sin avanze de linea

\f FF Alimentacion de pagina (Solo para impresora)

\' ' Comilla Simple

\'' '' Comilla Doble

\\ \ Barra Invertida(backslash)

\0dd Caracter ASCII. Representacion Octal

\xdd Caracter ASCII. Representacion Hexadecimal

\udddd Caracter UNICODE. Representacion Hexadec.

\a BEL Alerta, pitido(\u0007)

\u VT Tabulador Vertical(\u0008)

TIPOS

Los tipos en C# se clasifican en tipos : Valor y Refencia. Una variablke de

tipo valoralamcena directamente un valor (dato en general) mientras que una variable

de un tipo referencia lo que permite almacenar es una referencia a un objeto(posicion

de memoria donde esta el objeto)

int suma = o; //Suma almacena un enetero

CCuenta cta = null // cta permitira alamcenar una referencia a un objeto CCuenta

Tanto las clases como las matrices, intrefaces y delegados son tipos refrencia.

En cuanto a los tipos valor se clasifican en las siguientes 3 formas : los tipos

Page 2: Elementos de Lenguaje de Cshare

primitivos , las estrucutras y los tipos enmuerados

Los tipos primitivos se clasifican en tipo enteros, tipos reales y tipo bool.

Lista de tipos primitivos

La siguiente lista contiene los tipos (primitivos):

Tipo en C#

Tipo de .NET Framework

CLS-Compliant

DescripciónValor por

defecto

object System.Object Si Tipo base para todos los otros tipos N/A

bool System.Boolean Si1 bit; representa true(verdadero) o false (falso)

false

Enteros

byte System.Byte Si 8 bit; entero sin signo 0

sbyte System.SByte No 8 bit; entero con signo 0

short System.Int16 Si 16 bit; entero con signo 0

ushort System.UInt16 No 16 bit; entero sin signo 0

int System.Int32 Si 32 bit; entero con signo 0

uint System.UInt32 No 32 bit; entero sin signo 0

long System.Int64 Si 64 bit; entero con signo 0L

ulong System.UInt64 No 64 bit; entero sin signo 0

Decimales

float System.Single Si 32 bit; IEEE valor decimal 0.0F

double System.Double Si 64 bit; IEEE valor decimal 0.0D

decimal System.Decimal Si128 bit valor decimal(1 bit signo; 96 bit valor; 8 bit exponente; 23 bit sin uso)

0.0M

Caracteres

char System.Char Si 16 bit Caracter Unicode \0

string System.String Si Matriz de caracteres N/A*

Literal NULL 0 Tipos anulables

Un Tipo anulable puede representar todos los valores de determinado tipo más la

capacidad de poder contener un valor null. Es una nueva característica en C# 2.0. Es

Page 3: Elementos de Lenguaje de Cshare

una instancia de la estructura System.Nullable. Sólo pueden ser usados con los tipos

por valor, ya que los tipos por referencia soportan el valor nulo.

La razón para usar Tipos anulables es para superar el problema de no estar apto para determnar fácilmente si un tipo por valor está vacío o indefinido. Diferente que a los tipos por referencia (que se les puede asignar el valor null) null no es asignable a tipos por valor primitivos.

NOTA: Los tipos bool anulables, en una sentencia if, while, for, o alguna otra sentencia lógica o de iteraciones, será equivalente null a false; no lanzará un error.

Por ejemplo, el siguiente código puede causar un error en tiempo de compilación:

int varA = null;

// Error: no se puede convertir en nulo

// 'int' porque es un tipo por valor que no es anulable

Usar Tipos anulables como una solución consistente para determinar si un tipo por valor está vacío o indefinido.

Se pueden declarar Tipos anulables de las siguientes dos formas:

System.Nullable variable; // 1era manera

T? variableName; // 2nda manera

Donde T es el tipo del Tipo anulable. T puede ser cualquier tipo por valor incluyendostruct; pero, este no puede ser un tipo por referencia. Por ejemplo:

int? i = 10;

double? d1 = 3.14;

bool? bandera = null;

char? letra = 'a';

int?[] arr = new int?[10];

Miembros de los tipos anulables

Miembors fundamentales:

Propiedades

HasValue Pública de sólo lectura. El tipo es bool. True si la variable no contiene un valor nulo.

Page 4: Elementos de Lenguaje de Cshare

Value Pública de sólo lectura. El tipo es el tipo indicado. Si HasValue estrue, entonces Value contiene un valor significante. Si HasValue esfalse, accediendo a Value lanzará una InvalidOperationException.

Métodos

GetValueOrDefault Devuelve el valor del objeto o el valor predeterminado (en el caso de que el valor sea null) del objeto o del especificado en el parámetro opcional T.

Para probar los tipos anulables:

int? x = 10;

if (x.HasValue)

{ System.Console.WriteLine (x.Value); }

else

{ System.Console.WriteLine ("Indefinido"); }

// -o-

if (x != null)

{ System.Console.WriteLine (x.Value); }

else

{ System.Console.WriteLine ("Indefinido"); }

int? NumeroN = null;

int Numero = NumeroN.GetValueOrDefault(); // El valor predeterminado es 0

NumeroN = 146;

Numero = NumeroN.GetValueOrDefault(); // El valor es 146

Uso

La necesidad de este planteo sirve para interactuar con bases de datos SQL, las cuales sus celdas pueden contener también un valor null.

Si querés especificar tu propio valor predeterminado, puedes usar el operador ??. El operador ?? devolverá el valor de la declaración de la izquierda si este no es nulo y si lo es devolverá el valor dado del lado derecho del ??.

Page 5: Elementos de Lenguaje de Cshare

int? NumeroN = null;

int Numero = NumeroN ?? -1; // Numero es -1

NumeroN = 146;

Numero = NumeroN ?? -1; // Numero es 146

Otra posibilidad para obtener el valor es usar la propiedad Value. Esta propiedad lanzará una excepción System.InvalidOperationException si el valor es null. Para evitar esta excepción, puedes, también, usar la propiedad HasValue que devuelve un valor bool para comprobar si el valor es nulo o no. Si el valor de retorno de HasValuees false, entonces el valor de la variable es null.