从零开始学C#

从零开始学C#--被施了魔法的变量

2021-07-27  本文已影响0人  Arabid

本篇属于:从零开始学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;
上一篇 下一篇

猜你喜欢

热点阅读