作者:手机用户2502929315 | 来源:互联网 | 2023-09-15 11:47
编程语言可以分为两类:一种是强类型语言,譬如C#、JAVA、C++等,另外一类是弱类型语言,比如一些脚本语言javascript等。强类型语言是,变量在使用前必须定义,类型之间区分比较明显
编程语言可以分为两类:一种是强类型语言,譬如C#、JAVA、C++等,另外一类是弱类型语言,比如一些脚本语言Javascript等。
强类型语言是,变量在使用前必须定义,类型之间区分比较明显,如果两个类型不相容,则不能隐式的转换,必须进行显示转换。
弱类型语言是,变量在使用前不要求必须定义,类型之间没有明显的界限,变量在使用时会自动转换为合适的目标类型。
也就是说,强类型语言的变量必须有明确的类型,如int、string等,而弱类型语言则没有这样的要求,譬如Javascript中的类型都可以是var。C#3.5中引入了一个新的关键字"var",可以代表任何类型,但是不要认为C#在往弱类型语言靠拢,这里的"var"和Javascript中的"var"有本质的区别。
在C#3.5中,如果有一个局部变量被声明为var,这个声明被视为隐式类型的局部变量(Implicitly Typed Local Variables)声明,然后由编译器根据等号右边的初始化表达式来推断变量的类型
var的使用注意以下几个方面:
1. 编译的时候,局部变量被编译为具体类型;根据等号右边的表达式,决定类型
2. 编译器自动判断和决定类型,var仅仅起占位符的作用;不同于object,var声明出来的是强类型,如下是错误的:
a)
var integer
=
12345
;
b)
integer
=
"
http://www.fengzhiqiang.name
"
;
3.
var s
=
null
//
错误!因为编译器不能判断出null的类型
4.
var x;
//
错误,隐式类型的局部变量必须在声明的时候初始化
5. 编译器必须应该能够从等号右边推断出类型,初始化语句必须是一个表达式,初始化表达式不能包含它自身,不可以是对象或集合初始化器,但是可以是包含一个对象或集合初始化器的一个new表达式(即匿名类型)。
a)