时间:2021-05-20
一、数据类型与变量的介绍
在程序运行的过程中计算机需要记录大量的状态 数据(这里我们统称数据)。那这些数据都存放在哪呢?程序在运行过程中的数据一般都存放在内存。那么他们在内存中如何存放的一种描述就是数据类型。变量则就是数据类型的实体。那么我们来看一个例子: 假如现在需要设计一个程序计算整数 10 与 20 的和, 请看如下代码:
分析: 首先要计算整数10与20的和,肯定需要有地方来放(在内存中存储)它们,既然计算整数那么我们就用整数的数据类 型int 定义名字为a 和 b的变量来分别存放10 和 20,在通过加法运算符将和存放在变量c中。调用我们之前了解过的控制台类将结果输出到控制台显示出来,这里要注意c.ToString(), 因为我们计算的是整数,所使用变量的类型都是整数,而控制台输出的是字符串,所以我们需要将调用int类型的一个行为ToString()将自己转换为字符串类型!这部分将在数据类型的第三篇中介绍!
二、C#基本数据类型与变量
1.数据类型
C#的数据类型分为两类:一种是值类型 一种是引用类型 (值类型与引用类型将在数据类型的第二篇中介绍),那么我们来看看C#的常用数据类型。
2.匿名类型
了解C#常用的基础数据类型以后,我们在来看看匿名类型,什么是匿名类型呢?
匿名类型:匿名类型就是在变量初始化后根据所赋的值来判断它属于哪个类型。不明白没关系,举个例子:
首先看 9 ~ 10行,定义了一个整数类型的变量a赋值为20和一个字符类型的变量b为赋值为A,那么 a与b的数据类型分别为整数类型(System.Int32与System.Char).
接着看 12 ~ 13行,定义了两个匿名类型的变量为: _intType,_charType,分别给 _intType赋了一个整数的值为20,给_charType赋了一个字符为A。在程序运行之前编译器会根绝变量所赋的值来自动判断数据类型。
程序执行结果如下:
提示:匿名类型变量在编译后确定数据类型之后,在程序作用域内该变量的数据类型不可改变!
3.变量与变量的作用域
变量:经过上面的例子与介绍应该已经对变量不陌生了,变量就是数据类型的实例。真正用来存放数据的内存空间或存放数据内存空间地址。
作用域:作用域就是程序使用该变量的一个范围。一般变量作用域的边界是由符号{与}来划定界限的,也就是说在{}内定义的变量,就只能在{}内部来调用。
C#的作用域可分为两种级别:
1.类属性级别:当变量定义为类的属性是,变量的作用域为整个类的内部可访问。
2.局部级别:当变量被定义在方法或者语句块中,变量的作用域为最近的{}之间可访问,局部级别的变量必须初始化。
关于作用域的问题:
1.当一个类定义的变量(属性)与该类方法中定义的局部变量重名时会怎么样?
答:当前作用域中的变量与上级作用域中的变量重名时,以当前作用域中的变量为准。
2.当一个类定义的变量(属性)重名或者类方法中定义的局部变量重名时会怎么样?
答:同一个作用于中不能出现相同名称的变量
参考代码:
三、数据类型默认值与初始化
C#中类定义属性可以不用初始化,那么他们的值分别是什么呢? 未赋值的变量会被自动赋予一个合适的默认值。
例如:
int 类型(数值类型)默认值为0
bool 类型 默认值为false
char 类型 默认值为 ‘\0'
我们还可以在定义类属性是就初始化他们的值,也可以通过类的构造函数来初始化类属性
输出结果如下:
四、静态变量
静态变量就是通过类级别去调用,无需创建类型的对象就可以用的变量。
静态变量关键字: static
定义格式: [static 数据类型 变量名]
实例代码:
运行结果如下:
五、常量
常量就是不能被改变的变量,常量只能定义在类属性级别,常量也必须是静态的,并且在定义时就初始化赋值,常量一旦被初始化后就不可以在改变,任何对常量改变语句都将引起编译器错误。因为常量定义时就要赋值所以常量类型只能声明给值类型(值类型与引用类型下篇讲解)。
常量的定义格式: [const 数据类型 变量名]
代码:
正确操作运行结果如下:
修改常量提示错误如下:
六、只读与静态只读
回顾下常量在声明时必须初始化赋值,那么如果我想在运行的时候才赋值怎么办?那么不用怕C#为我们提供了只读类型关键字为:readonly ,只读类型跟常量类似也是赋值后就不可以改变,但与常量不同的是它不是强制静态的,也就是只读类型是对象级别来访问的。
只读类型定义方式:[readonly 数据类型 变量名]
那么如何让他成为静态的? 很简单在前面我们已经介绍过静态的关键字static
静态只读类型定义方式:[static readonly 数据类型 变量名]
代码:
正确操作运行结果如下:
修改只读变量错误如下:
七、需要注意的细节
1.变量作用域是否可以出现相同变量名?
答:相同作用域时,变量不可以重名,在当前作用域与上级作用域的变量重名时,以变量所在作用域为主。
2.常量是否可以在对象级别访问?
答:常量不可以在对象级别访问,常量默认为静态的,由类级别访问。
3.常量(const)与(readonly)只读的区别?
答:相同点:是都是赋值后就不可以改变,
不同点:
1.Const 必须在声明时就赋值,readonly 可以在初始化过程中赋值.
2.Const只可以修饰值类型,而readonly可以修饰任意类型.
3.Const是类级别访问,readonly是对象级别访问
以上讲解的类的属性都代表成员变量,希望对大家的学习有所帮助。之后还有相关文章继续更新,希望大家继续关注。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
我们继续自学C#编程教程,在上一课中介绍了C#的基本数据类型以及变量,今天这一节课我们来介绍值类型与引用类型!一、什么是值类型与引用类型?C#与大多数面向对象语
int和float的区别如下: 一、指代不同 1、int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。
float和int的区别: 1、指代不同。 int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。float
1.任何一门编程语言均有相关数据类型。C#也不例外,其基本数据类型有int,short,long,float,double,string等。数据类型之间可以相互
对于一门编程语言,肯定包含变量和数据类型。今天我们就来看看JavaScript脚本语言的变量和数据类型。相对于其他的Java,C++等高级程序语言,JavaSc