欢迎各界计算机爱好者加入,弘扬极客精神!

C#中var类型是什么意思?怎么用?为什么定义一个字符串既可以用var又可以用string?

3 喜欢 0 不喜欢
最新提问 3月 21, 2015 分类:菜鸟问 | 用户: general (4,608 分)  

4 个回答

5 喜欢 0 不喜欢
 
已采纳
var是一个不定类型的变量,它的类型由第一次给他赋的值决定。

int x = 0;

var a = x;

那么a就是int

string str = "abcd";

var b = str;

那么b就是string。

var并不是用来声明字符串的。只是声明一个不定类型的变量而已。而这个变量的具体类型取决于第一次赋值时,所赋的值像什么类型,就是什么类型。

并且,此后不可改变。
最新回答 3月 21, 2015 用户: 叶舟~团子~ (3,780 分)  
采纳于 3月 23, 2015 用户:general
如果
int x = 0;
double y = 1.05;

var a = x;
a = y;
在这里编译器就会报错,var一旦在第一次赋值后,类型就确定了。
在这里就是int,再向它赋double值,必然报错。
C#里面有个叫做dynamic的变量类型。该类型的变量类型是动态的。
比如
dynamic a = 0;
a = 1.5;
a = "ABCD";
a = true;
声明后,每一次赋值都可以改变它包含的类型。
这是一种动态类型的变量。
2 喜欢 0 不喜欢
用var比较好,var是定义所有变量。其实C++中本好像没有string变量。不过有些编程软件的C++库中有string,那就可以直接使用string变量的一些库函数
最新回答 3月 21, 2015 用户: Allan (2,218 分)  
1 喜欢 0 不喜欢

var关键字是C# 3.0开始新增的特性,称为推断类型 .
可以赋予局部变量推断“类型”var 而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。
上面的资料有点抽象不好理解.
示例:
原来我们定义变量,是要这样:
数据类型 变量名 = 值;
如:
int a = 1;
string b = "2";
也就是说,"必须先明确地"指定你的变量是什么数据类型,才能给它赋值.这点很重要,要记住才好比较.
现在在C# 3.0里,有了变化,就是可以不用像上面那样定义变量了.
如:
var a =1 ;
那这个a,是什么类型呢?和原来的做法不一样了.
奥妙就在这里,IDE或编译器会根据你给a 的值:1,来"推论,断定"a是一个整数类型.
同理:
var b = "2";
因为给b的值是"2"这样一个字符串,所以,b就是string类型...

 又如:

VAR 是3.5新出的一个定义变量的类型
其实也就是弱化类型的定义
VAR可代替任何类型
编译器会根据上下文来判断你到底是想用什么类型的
至于什么情况下用到VAR   我想就是你无法确定自己将用的是什么类型
就可以使用VAR     类似 OBJECT
但是效率比OBJECT高点
使用var定义变量时有以下四个特点:
1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:
var s;
s = “abcd”;
2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。
3.   var要求是局部变量。
4.   使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。

 

最新回答 3月 21, 2015 用户: 似是故人来 (2,594 分)  
1 喜欢 0 不喜欢

var 就是一个广域的定义  范围比较大,只要是变量都可以用var  

必须在定义时初始化。也就是必须是var s = “abcd”形式

最新回答 3月 22, 2015 用户: 1234 (1,326 分)  
...