黑马程序员技术交流社区
标题:
var关键字
[打印本页]
作者:
brucel50
时间:
2013-7-24 16:34
标题:
var关键字
以下摘自百度百科
//C#
//VAR 是.net framework 3.5新出的一个定义变量的类型
//其实也就是弱化类型的定义。
//VAR可代替任何类型
我看传智视频的老师说var是强类型,
var定义的变量类型是强类型还是弱类型啊?
作者:
changvh
时间:
2013-7-24 17:11
本帖最后由 changvh 于 2013-7-24 17:15 编辑
使用var关键字,编译器会根据初始化局部变量的初始值推断变量的数据类型。也就是在编译期就决定了类型,而不是dynamic,只有在运行时才会决定类型。严格的说var不是c#的关键字,但是如果var标识用于数据类型,编译器就会认为是关键字。var是强类型,是var所代表的那个类型是强类型。
作者:
彭家贰小姐
时间:
2013-7-24 17:37
可以简单的这样理解,C#是强类型的语言:
int num = 2;
num = "2";
编译就会报错
2013-7-24 17-31-36.png
(14.13 KB, 下载次数: 0)
下载附件
2013-7-24 17:33 上传
var
num = 2;
num = "2";
即使你改成var,只不过会根据后面的2来给num定义为int类型。第一句num就是int了所以第二句这样赋值,仍然会报上面的错。
但是JavaScript不同,它是弱类型的语言
int num = 2;
num = "2";
这样是OK的
作者:
马晓凤
时间:
2013-7-24 18:10
本帖最后由 马晓凤 于 2013-7-24 18:11 编辑
百度百科上说“弱化类型的定义”是相对于写程序的我们来说的比如var p=4;我们不必考虑p变量是什么类型,
但我们就将判断这个p变量是什么类型的任务交给了编译器,编译器编译的过程中会推断出p是int类型。
“弱化类型的定义”不是指弱类型
,var a=4; a="455"; 编译时一样会出错,c#是强类型的语言,编译器一旦推断出a是什么类型之后,它的数据类型就不可以再变了。
js是弱类型的语言 var a=4; a="455"; 这么写就是正确的
作者:
马晓凤
时间:
2013-7-28 11:46
属于
弱类型
的, var a =1; var ="12321", var a= new Person(); 都可以的
强类型指的是 定义什么类型 就是什么类型
,不能 改 ,int a=123; 不能赋值为 a="123";
作者:
高文咪
时间:
2013-7-28 11:53
比如你定义var a;
a="abc";
这样你定义的a就是字符串类型了;
如果你写的a=1; 程序就会默认为你定义的a是int类型;
不过一般见这种写法的还是前台用的会多些;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2