A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© brucel50 中级黑马   /  2013-7-24 16:34  /  1655 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下摘自百度百科

//C#
//VAR 是.net framework 3.5新出的一个定义变量的类型
//其实也就是弱化类型的定义。
//VAR可代替任何类型


我看传智视频的老师说var是强类型,
var定义的变量类型是强类型还是弱类型啊?


5 个回复

正序浏览
比如你定义var a;
a="abc";
这样你定义的a就是字符串类型了;
如果你写的a=1; 程序就会默认为你定义的a是int类型;
不过一般见这种写法的还是前台用的会多些;
回复 使用道具 举报
属于弱类型的,   var a =1; var ="12321", var a= new Person();   都可以的
强类型指的是 定义什么类型 就是什么类型,不能 改 ,int  a=123; 不能赋值为 a="123";
回复 使用道具 举报
本帖最后由 马晓凤 于 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"; 这么写就是正确的
回复 使用道具 举报
可以简单的这样理解,C#是强类型的语言:
int num = 2;
num = "2";
编译就会报错


var num = 2;
num = "2";
即使你改成var,只不过会根据后面的2来给num定义为int类型。第一句num就是int了所以第二句这样赋值,仍然会报上面的错。

但是JavaScript不同,它是弱类型的语言
int num = 2;
num = "2";
这样是OK的


回复 使用道具 举报
本帖最后由 changvh 于 2013-7-24 17:15 编辑

使用var关键字,编译器会根据初始化局部变量的初始值推断变量的数据类型。也就是在编译期就决定了类型,而不是dynamic,只有在运行时才会决定类型。严格的说var不是c#的关键字,但是如果var标识用于数据类型,编译器就会认为是关键字。var是强类型,是var所代表的那个类型是强类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马