📜  在 c# 中进行强制转换(1)

📅  最后修改于: 2023-12-03 14:50:51.977000             🧑  作者: Mango

在 C# 中进行强制转换

在 C# 中,强制类型转换是将一个变量由一种数据类型转换为另一种数据类型的过程。通常情况下,强制类型转换是将一种较大的数据类型转换为较小的数据类型。

基本数据类型的强制转换

以下是基本数据类型的强制转换:

1. 布尔类型

布尔类型是不能强制转换为其他数据类型的。但可以通过 Convert 类来将布尔类型转换为字符串类型。

bool flag = true;
string strFlag = Convert.ToString(flag);
2. 字符类型

字符类型可以被转换为整数类型,也可以通过 Convert 类将其转换为字符串类型。

char c = 'A';
int i = (int)c;
string str = Convert.ToString(c);
3. 整数类型

整数类型可以直接转换为其他整数类型,也可以通过 Convert 类将其转换为字符串类型。

int i = 100;
long l = (long)i;
string str = Convert.ToString(i);
4. 浮点类型

浮点类型可以直接转换为其他浮点类型,也可以通过 Convert 类将其转换为字符串类型。

float f = 1.23f;
double d = (double)f;
string str = Convert.ToString(f);
非基本数据类型的强制转换

非基本数据类型的强制转换需要使用强制类型转换运算符。以下是常见的非基本数据类型的强制转换:

1. 数组类型

数组类型可以通过强制类型转换运算符进行强制转换,将数组对象转换为其它数组类型。

int[] nums = {1,2,3,4,5};
object obj = nums;
int[] newNums = (int[])obj;
2. 枚举类型

枚举类型可以通过强制类型转换运算符进行强制转换。

enum Color {
    Red,
    Green,
    Blue
}
int num = (int)Color.Green;
3. 类类型

类类型可以通过强制类型转换运算符进行强制转换,将派生类型对象转换为基类类型对象,或者将对象转换为其它类类型。

class Animal {
    public void Run() {
        Console.WriteLine("Animal is running.");
    }
}
class Cat : Animal {
    public void Meow() {
        Console.WriteLine("Cat says Meow.");
    }
}
Cat cat = new Cat();
Animal animal = (Animal)cat;