post icon

Asignación de variables explicitas e implícitas en CSharp

En estos días me preguntaba un usuario si hay diferencias cuando asignamos las variables de manera explícita implícita? si alguna es mejor o lleva una ventaja sobre la otra?

Bueno, en respuesta a esto, la asignación de variables de forma implícita apareció desde la version 3 de CSharp .Net. Y produce algo de confusión a muchos, teniendo el temor que les ocurra en sus aplicaciones lo que ocurría o ocurre aún con Visual Basic, en cualquiera de sus versiones, antes que nada, tienen que considerar que CSharp es un lenguaje pensado y en su sintaxis se sacaron las malas practicas, así que no es el caso.

La manera de asignar estas variables es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// se compila como integer
var i = 5;
// equivalente explicito
int i = 5;
 
// se compila como string
var s = "Hello";
// equivalente explicito
string s = "Hello";
 
// se compilar como un array de integer
var a = new[] { 0, 1, 2 };
// equivalente explicito
int[] a = new int[] { 0, 1, 2 };
 
// se compila como IEnumerable
// o  IQueryable
var expr =
    from c in clientes
    where c.Ciudad== "Asuncion"
    select c;
 
// se compila como un tipo anonimo
var anon = new { Name = "Terry", Age = 34 };
 
//se compila como una lista List
var list = new List();
// equivalente explicito
List list = new List();

Como ven da la impresión que es un tipo de dato variant, o que es flexible el tipo de dato que se le puede asignar (lo que producía sobrecarga de procesador para determinar su tipo de dato en tiempo de ejecución), pero no es así lo único que esto hace es que el tipo de dato sea asignado en el proceso de compilación dejándolo elegir el mejor tipo de dato. No produce ninguna otra diferencia, por lo tanto se puede decir que en la mayoría de los casos es opcional y aporta una comodidad sintáctica. Únicamente su uso es obligatorio en tipos de datos anónimos.

11 julio 2010

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder