[C#基语法]之C#变量(2)初始化与类型推断
系列文章导航
[C#基语法]苏飞传奇版 http://www.sufeinet.com/thread-3091-1-1.html
我认为在变量中有两点是我们不得不提的。
第一点比较重要的就是初始化,为什么要说这点呢,其实呢在C#中变量是一种强类型,也可以理解为强制定义类型,强制安全性。他的意思就是说在使用这个变量之前必须先规定他的类型
以保证安全性,那么我们根据这些可以总结出来它的特性如下:
1.变量在使用之前必须指定类型并初始化。
2.变量的初始化多样性
变量在使用之前必须指定类型并初始化。
这个其实不难理解,我以几个小例子来说明,先看下面变量的定义
[C#] 纯文本查看 复制代码 int a, b;
int c = a + b;
大家想想上面的写法对吗?
答案是否定的这样一定会报错。
这就是我们的第一点,在使用这个变量之前一定要给他初始化,说到初始化,我们的方法就多了,看下面例子
1.[C#] 纯文本查看 复制代码 int a = 0; int b=10;
2.[C#] 纯文本查看 复制代码 int a=0, b=10;
3.[C#] 纯文本查看 复制代码 int a, b; a = b = 10;
好了这个我就不再多举例了,大家想想还有什么样的方法可以初始化变量吧。
这点就是多样性了。
类型推断
什么类型推断呢?这类其实主要是一个关键字Var,推断的工作是由编译器来做的,因为C#中保留了Var进行变量的初始化。与定义。
这个就与JS的变量有所想同了,
我们正常的定义方法是强类型,就是说会根据变量的类型来确定值的类型。
然后使用Var正好相反,它是根据值的变量来确实变量的类型。
下面看下例子
[C#] 纯文本查看 复制代码 var number = 0;
int number = 0;
大家想一下这两个定义 的语句有什么不同,我可以肯定的告诉大家他是正确的,不要怀疑他的正确性,主要是说说有什么不同。
其实呢除了,使用的关键字int与var的不同之外,就再没有什么分别了
他们的做用是相同的,可以说是等价的,即使var number = 0;从来没有声明为int,编译器也可以确定,只要他在作用域内使用,就是一个int,编译之后他们是等价的。
看下面例子就明白了
[C#] 纯文本查看 复制代码 var name = "苏飞";
var age = 26;
var isRabbit = false;
Console.WriteLine("name的类型:" + name.GetType().ToString());
Console.WriteLine("age的类型:" + age.GetType().ToString());
Console.WriteLine("isRabbit的类型:" + isRabbit.GetType().ToString());
输出的结果是
[C#] 纯文本查看 复制代码 name的类型:System.String
age的类型:System.Int32
isRabbit的类型:System.Boolean
在这里也是一样的变量也需要先初始化才能使用,和我们上面说的是 一样的规则。这点大家在使用时要注意。因为如果我们不初始化编译器就没有办法推断他的类型了。
关于变量这块咱们到这里就结束了,在以后的使用和文章中如果还有需要其他的特点咱们再一起学习吧。
|