3

varC#和C#有什么区别string

4

6 回答 6

15

该关键字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 });
于 2013-05-28T10:56:27.497 回答
5

var是隐式类型并且string是显式类型,但这些声明在功能上是等效的

var implicitString = "hello";
string explicitString = "hello";

只有在方法范围内声明的变量才能具有隐式类型var。使用时,编译器从赋值的右侧推断类型。

于 2013-05-28T10:50:46.813 回答
2

首先,这些是 C# 关键字,而不是 ASP.NET。

string是一种类型 - 一种显式类型,基本上被编译器替换为System.String.

var是代表类型的关键字 - 当编译器可以判断变量的类型应该是什么时(例如从函数的返回类型或文字)。如果您使用字符串,编译器将进行与上述相同的替换。

于 2013-05-28T10:53:32.583 回答
2

Var 用于声明隐式类型变量,编译器会自动识别类型。var 可以保存任何类型的数据。String 是仅用于保存字符串数据的显式声明。

var i=5; 
var a="abcd"; 
var b= 5.5555; 
var c=new class(); 


String s = "ABCD";
于 2013-05-28T10:56:58.493 回答
2

var 和 string 之间没有合法的比较。

'var' 用于声明隐式类型,可以是 int 、 string 、 double 、 object 等。当您不完全知道方法的返回类型或者您根本不关心它时,它很有用。

'string' 是一种特殊的数据类型,它只能保存字符串数据,不能保存任何类型的数据。

此外,对于 var,类型必须在声明 var 变量时定义,即仅在编译时定义,否则编译器将标记编译时错误。因此,虽然

string abc;

是可能的,但是

var abc;

不可能。

于 2013-05-28T11:06:00.643 回答
0

在 VB.NET 中没有实际区别,还有另一个讨论更多信息

于 2013-05-28T10:52:02.043 回答