Mostrando entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando entradas con la etiqueta C#. Mostrar todas las entradas

viernes, 22 de octubre de 2010

Valores default en C#

A continuación se muestra la tabla con los valores por default.

Tipo de valorValor predeterminado
boolfalse
byte0
char'\0'
decimal0,0M
double0,0D
enumEl valor producido por la expresión (E)0, donde E es el identificador de la enumeración.
float0,0F
int0
long0L
sbyte0
short0
structEl valor obtenido al asignar los valores predeterminados a los campos de tipo de valor y el valor null a los campos de tipo de referencia.
uint0
ulong0
ushort0

sábado, 2 de octubre de 2010

Null Coalescing Operator

Muchos no conocen este feature de C#, es bastante sencillo, lo que hace es fijarse si el valor de la izquierda es nulo, en caso de que sea asi retorna lo que se le indique a la derecha, caso contrario va a retornar el valor de la variable.

 1 string texto = "hello world"
2 string resultado = texto ?? "Este valor es nulo"
3
4 // Devuelve "hello world"
5
6 string texto = null;
7 string resultado = texto ?? "Este valor es nulo"
8
9 // Devuelve "Este valor es nulo"

Precedencia de Operadores

La precedencia de operadores especifica como se agrupan las expresiones.

Por ejemplo en la siguiente sentencia:

int numero = 2 + 3 * 4;

El resultado es 14 y no 20. Significa que la multiplicación tiene mayor precedencia que la suma, primero se realiza 3 * 4 y al resultado de eso se le suma 2.
Esto se puede alterar incluyendo los paréntesis:

int numero2 = (2 + 3) + 4;

El resultado en este caso, es 20.

Cuando realizamos una condición también existen precedencias, detallo a continuación la lista de los operadores agrupados por orden de prioridad de mayor a menor, los operadores dentro de cada grupo tienen la misma prioridad.



Categorías

Operadores

Principal

x.y

f(x)

a[x]

x++

x--

new

typeof

checked

unchecked

->


Unario

+

-

!

~

++x

--x

(T)x


true


false


&


sizeof


Multiplicativo

*
/

%

Sumatorio

+


-


Desplazamiento

<<


>>


Comprobación de tipos y relaciones

< >

<=

>=

is

as

Igualdad

==

!=

AND lógico

&

XOR lógico

^

OR lógico

|

AND condicional

&&

OR condicional

||

Condicional

?:

Asignación

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

Uso combinado de Null

??

Lambda

=>

Por lo cual el siguiente condición daría TRUE:
bool verdadero1 = true;
bool verdadero2 = true;
bool falso = false;

if (falso && verdadero1 || verdadero2)
MessageBox.Show("true");
else
MessageBox.Show("false");

Primero evalúa falso y verdadero1 (false) y luego verdadero2.