C# 类型转换
C# 类型转换
类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。
在 C# 中,类型转换有两种形式:
- 隐式类型转换(默认) - 将较小的类型转换为较大的类型大小,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。
char
->int
->long
->float
->double
- 显式类型转换 (强制类型转换)。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
double
->float
->long
->int
->char
隐式类型转换
将较小尺寸的类型传递给较大尺寸的类型时,会自动执行隐式转换:
实例
int myInt = 9;
double myDouble = myInt; // 自动转换: int 到 double
Console.WriteLine(myInt); // 输出 9
Console.WriteLine(myDouble); // 输出 9
显式类型转换
必须手动执行显式强制转换,方法是将类型放在值前面的括号中:
实例
double myDouble = 9.78;
int myInt = (int) myDouble; // 手动转换:double 到 int
Console.WriteLine(myDouble); // 输出 9.78
Console.WriteLine(myInt); // 输出 9
类型转换方法
还可以使用内置方法显式转换数据类型,例如 Convert.ToBoolean
, Convert.ToDouble
, Convert.ToString
, Convert.ToInt32
(int
) and Convert.ToInt64
(long
):
实例
int myInt = 10;
double myDouble = 5.25;
bool myBool = true;
Console.WriteLine(Convert.ToString(myInt)); // 将 int 转换为字符串
Console.WriteLine(Convert.ToDouble(myInt)); // 将 int 转换为 double
Console.WriteLine(Convert.ToInt32(myDouble)); // 将 double 转换为 int
Console.WriteLine(Convert.ToString(myBool)); // 将布尔转换为字符串
为什么要转换数据类型?
很多时候不需要进行数据类型转换。但有时必须,比如使用用户输入时,请看下一章以查看示例。