C#编程自学之数据类型和变量一

2019-12-26 13:33:36王振洲

首先看 9 ~ 10行,定义了一个整数类型的变量a赋值为20和一个字符类型的变量b为赋值为A,那么 a与b的数据类型分别为整数类型(System.Int32与System.Char).

接着看 12 ~ 13行,定义了两个匿名类型的变量为: _intType,_charType,分别给 _intType赋了一个整数的值为20,给_charType赋了一个字符为A。在程序运行之前编译器会根绝变量所赋的值来自动判断数据类型。

程序执行结果如下:

C#编程自学之数据类型和变量一

提示:匿名类型变量在编译后确定数据类型之后,在程序作用域内该变量的数据类型不可改变!

3.变量与变量的作用域

变量:经过上面的例子与介绍应该已经对变量不陌生了,变量就是数据类型的实例。真正用来存放数据的内存空间或存放数据内存空间地址。

作用域:作用域就是程序使用该变量的一个范围。一般变量作用域的边界是由符号{与}来划定界限的,也就是说在{}内定义的变量,就只能在{}内部来调用。

C#的作用域可分为两种级别:

1.类属性级别:当变量定义为类的属性是,变量的作用域为整个类的内部可访问。

2.局部级别:当变量被定义在方法或者语句块中,变量的作用域为最近的{}之间可访问,局部级别的变量必须初始化。

关于作用域的问题:

1.当一个类定义的变量(属性)与该类方法中定义的局部变量重名时会怎么样?

答:当前作用域中的变量与上级作用域中的变量重名时,以当前作用域中的变量为准。

2.当一个类定义的变量(属性)重名或者类方法中定义的局部变量重名时会怎么样?

答:同一个作用于中不能出现相同名称的变量

参考代码:

 

 
  1. class MyClass   {  
  2. int a = 10;    
  3. public void MyMethod()   {  
  4. int a = 20; //方法内部变量与类属性变量 a同时出现时, 以当前方法内(作用域的变量为准)   Console.WriteLine("a:{0}",a); //输出结果为20  
  5.   int a = 30; // 编译错误,同一个作用域内不可以出现相同名称的变量  
  6. }   }