Elementos de Lenguaje de Cshare
-
Upload
irvin-isaias-francisco-diaz -
Category
Documents
-
view
8 -
download
1
description
Transcript of 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
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
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.
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 ??.
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.