var
C#和C#有什么区别string
?
6 回答
该关键字var
用于声明隐式类型。如果您为变量使用命名类型,则除了可读性之外没有其他区别(并且意见不同,哪个更好)。例子:
var s = "asdf";
给出完全相同的结果:
string s = "asdf";
但是,如果您有一个未命名的类型,则必须使用var
声明具有该类型的变量。例子:
var o = new { s = "asdf" };
没有使用命名类型的相应声明,因为创建的对象的类型没有名称。
var
当结果没有命名类型时,该关键字通常与 LINQ 和 LINQ 扩展方法一起使用。例子:
var result = someList.Where(x => x.Age < 10).Select(x => new { name = x.Name });
var
是隐式类型并且string
是显式类型,但这些声明在功能上是等效的
var implicitString = "hello";
string explicitString = "hello";
只有在方法范围内声明的变量才能具有隐式类型var
。使用时,编译器从赋值的右侧推断类型。
首先,这些是 C# 关键字,而不是 ASP.NET。
string
是一种类型 - 一种显式类型,基本上被编译器替换为System.String
.
var
是代表类型的关键字 - 当编译器可以判断变量的类型应该是什么时(例如从函数的返回类型或文字)。如果您使用字符串,编译器将进行与上述相同的替换。
Var 用于声明隐式类型变量,编译器会自动识别类型。var 可以保存任何类型的数据。String 是仅用于保存字符串数据的显式声明。
var i=5;
var a="abcd";
var b= 5.5555;
var c=new class();
String s = "ABCD";
var 和 string 之间没有合法的比较。
'var' 用于声明隐式类型,可以是 int 、 string 、 double 、 object 等。当您不完全知道方法的返回类型或者您根本不关心它时,它很有用。
'string' 是一种特殊的数据类型,它只能保存字符串数据,不能保存任何类型的数据。
此外,对于 var,类型必须在声明 var 变量时定义,即仅在编译时定义,否则编译器将标记编译时错误。因此,虽然
string abc;
是可能的,但是
var abc;
不可能。
在 VB.NET 中没有实际区别,还有另一个讨论更多信息