本篇属于:从零开始学C# | 基础篇 | 02
数据类型
值类型
值类型是由System.ValueType
类型派生的类型,存储在栈中。
值类型直接由变量存储数据,最常见与基本的值类型有:
关键字 | 类型 | 备注 |
---|---|---|
short | 短整数型 | 表示更小的数 省内存 |
ushort | 正短整数型 | 相比short而言 不能存储负号 |
int | 整数型 | 不能存储小数 |
uint | 正整数型 | 相比int而言 不能存储负号 |
long | 长整数型 | 可以表示更大的数 |
ulong | 正长整数型 | 相比long而言 不能存储负号 |
float | 单精度小数型 | 可以存储小数 |
double | 双精度小数型 | 表示的精度比float宽 但是占用内存更多 |
decimal | 小数型 | 能表示128 位精确的十进制值 |
char | 字符型 | 表示一个字符 |
byte | 字节型 | 8位无符号整数 |
sbyte | 符号字节型 | 8位有符号整数 |
bool | 布尔型 | 存储真或假 |
string | 字符串 | 存储一句话 |
声明变量:
数据类型 变量名 = 值; //值类型
值类型的强制指定
如果不做任何设置,包含小数点的数值都被当做double来处理,所以需要强制指定。
例如:
float myFloat = 3.12f;
值类型的显式与隐式转换
有时候,我们需要对变量进行强制转换。
隐式转换即编译器可以进行自动转换的情况,比如
int i = 1;
int j = 2;
long k = i + j;
虽然long与int不属于同一种变量,但编译器也不会有什么意见,反正加起来就行,但如果这样:
int i = 1;
string j = "2";
int k = i + j;
好家伙啊,同一个数去加上一个字是什么意思?编译器当场抛出一个错误并给你一个大嘴巴子。那遇到这样的情况该怎么办呢?
让我们认识一座叫做System.Convert
的大楼,这里面的人个个膀大腰粗,使用Visual输入Convert.就会出现里面的方法,比如ToInt32(转换为int)之类的,修改代码为:
int i = 1;
string j = "2";
int k = i + Convert.ToInt32(j);
但是如果你这么做:
int uError = Convert.ToInt32("你好")
还是会报错,你给我说说,你好转换成数之后是几???
引用类型
引用类型是构建C#应用程序的主要对象类型数据,存储在堆中,被弹性运用于对象的访问。
枚举类型
枚举类型是一种"游于三界之外,荡出轮回当中。"的特殊类型,它用于声明一组具有相似性质的常量。
例如,在Program类中,输入如下代码:
enum color{
Red = 1,
Blue = 2,
Green = 3
}
public static void Main(string[] args){
//下面的暂且不需要理解
Random rd = new Random();
int randInt = rd.Next(1,4);
switch (randInt){
case color.Red:Console.WriteLine("红色");brake;
case color.Blue:Console.WriteLine("蓝色");brake;
case color.Green:Console.WriteLine("绿色");brake;
}
Console.ReadKey();
}
会随机输出一种颜色。
拆箱与装箱
将值类型转换为引用类型的过程叫做装箱
将引用类型显式转换为值类型的过程叫做拆箱。
请尽量避免拆箱与装箱。
Object
Object 类是 C# 语言中最原始、最重要的类,是所有类的“祖先”,每个 C# 类都是它的子类,它实现了每个类都必须具有的基本方法。
这里指的“所有类”,即不管是 C# 系统所提供的标准类,还是用户自行編写的类,都是从Object类直接或间接继承而来,它是类层次结构中的顶级类,即 C# 树型类层次结构的“根”。
Object 类中的属性和方法可以被用到任何类。
当編程者定义一个类时没有使用关键字 Extends 指明它的父类,则編译器认为该类从 Object 类继承而来。
但 Object 类的方法所实现的功能很有限,都是由编程者在自行设计的 class 类型的类体内编写与原型完全相同的方法来覆盖它们,以实现用户所要求的有用功能。
在 Object 类中提供了 4 个常用的方法,即 Equals、GetHashCode、GetType 以及 ToString 方法。
我们将在接下来的几节中分别为大家讲解这四种常用方法。
既然任何一个类都继承了 Object 类,这 4 个方法也可以被任何类使用或重写。
常量
控制不变的量叫做常量,在变量生命之前加上一个const关键字叫做常量,常量永远也不会允许被修改。
例如:
const a = 1;
网友评论