C#中var和string有什么区别?

Joh*_*ohn 2 c#

varstring#在C#之间有什么区别?

Guf*_*ffa 13

该关键字var用于声明隐式类型.如果您对变量使用命名类型,那么除了可读性之外没有其他区别(并且意见不同,哪个更好).例:

var s = "asdf";
Run Code Online (Sandbox Code Playgroud)

给出完全相同的结果:

string s = "asdf";
Run Code Online (Sandbox Code Playgroud)

但是,如果您有未命名的类型,则必须使用var声明具有该类型的变量.例:

var o = new { s = "asdf" };
Run Code Online (Sandbox Code Playgroud)

使用命名类型没有相应的声明,因为创建的对象的类型没有名称.

var关键字通常与LINQ和LINQ扩展方法,使用时的结果没有命名类型.例:

var result = someList.Where(x => x.Age < 10).Select(x => new { name = x.Name });
Run Code Online (Sandbox Code Playgroud)


Cla*_*edi 5

var是一个隐式类型,string是一个显式类型,但这些声明是函数等效的

var implicitString = "hello";
string explicitString = "hello";
Run Code Online (Sandbox Code Playgroud)

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