¿Cuál es la diferencia entre String y string y var? [duplicar]
Frecuentes
Visto 940 veces
-5
Tengo este caso de uso:
using System;
namespace ConsoleApplication11
{
using System.Collections.ObjectModel;
public class Program
{
static void Main(string[] args)
{
var test2 = "Name";
string test1 = "Name";
String test3 = "Name";
Console.WriteLine(test1 + test2 + test3 + "NameNotDefined");
}
}
}
Qué hará el compilador:
- en esta linea
Console.WriteLine(test1 + test2 + test3 + "Alugili");
? - con el último
"NameNotDefined"
?
¿Llamó el compilador? ToString()
a cada uno de ellos y luego aplicar el Operador +?
¿Alguien puede explicarme la diferencia entre var y String y string y "" y cómo interactuará el compilador con ellos?
2 Respuestas
1
Los tres se compilan de forma idéntica en C#. La palabra clave "var" se usa para inferir el tipo en tiempo de compilación, y el compilador infiere que está usando una cadena (que es lo mismo que Cadena).
Respondido el 11 de Septiembre de 13 a las 14:09
1
string
es un alias para System.String
, ambos se compilan en el mismo código, por lo que en el momento de la ejecución no hay diferencia.
El +
se utiliza para la concatenación de cadenas, por lo que cuando escribe test1 + test2 + test3 + "Alugili"
concatena todas las cadenas y forma una cadena. En .net, las cadenas son inmutables, es decir, las cadenas no se pueden modificar. Cuando modifica una cadena, en realidad está creando una nueva cadena.
Acerca de var MSDN dice esto:
A partir de Visual C # 3.0, las variables que se declaran en el ámbito del método pueden tener un tipo var implícito. Una variable local implícitamente escrita se escribe fuertemente como si usted mismo hubiera declarado el tipo, pero el compilador determina el tipo. Las siguientes dos declaraciones de i son funcionalmente equivalentes:
Respondido el 11 de Septiembre de 13 a las 14:09
Entonces, en el último "Alugili", se creará un nuevo objeto de tipo cadena y se inyectará en el código, ¿quieres decir eso? - Bassam Alugili
@Bassam Alugili - Sí, para obtener más información, consulte este enlace de MSDN msdn.microsoft.com/en-us/library/ms228362%28v=vs.90%29.aspx - bibhu
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas string or haz tu propia pregunta.
Oh dios, mátame ahora.. - Soner Gönül
@ user1671639 ¿De qué diablos estás hablando? - Willem D'Haeseleer
@user1671639
var
no es temporal... es una variable local tipificada implícitamente. - MarcinJuraszek@BassamAlugili ¿Es demasiado pedir leer la documentación? Todos leyeron su pregunta y la cerraron apropiadamente - tnw
Su pregunta es nula ya que no ha entendido cómo se definen las variables para empezar, básicamente tiene
string + string + string
si te ayuda a entender - Sayse