显示转换
在C#中,显示类型转换(Explicit Type Conversion)是指通过使用显式的类型转换语法,将一种数据类型的值转换为另一种数据类型的值,C#中的显示类型转换通常使用强制类型转换运算符来实现,例如:
- 将一个数值类型转换为另一个数值类型时,可以使用强制类型转换运算符,如(int)、(double)等等。
- 将一个引用类型转换为另一个引用类型时,可以使用as运算符或强制类型转换运算符,如(CustomType)obj等等。
值类型的显示转换需要满足如下条件:
1.两种类型相兼容
2.目标类型小于源类型,大的转成小的
double d = 3.14;
int n = (int)d; //显示类型转换,会丢失精度
隐式转换
在C#中,隐式类型转换(Implicit Type Conversion)是指将一种数据类型的值自动转换为另一种数据类型的值,而不需要使用显式的类型转换语法。C#中支持许多不同类型之间的隐式类型转换,例如:
- 从较小的整数类型(如byte、short和int)到较大的整数类型(如long和decimal)的隐式转换。
- 从浮点数类型(如float和double)到更高精度的浮点数类型(如decimal)的隐式转换。
隐式类型转换需要满足如下条件:
1.两种类型兼容
2.目标类型大于源类型,小的转大的
int number = 100;
double d = number; // int--double 自动类型转换 隐式类型转换
Convert类型转换
Convert通常用于将字符串转换为其他数据类型、将其他数据类型转换为字符串、将基本数据类型转换为对象类型、将对象类型转换为基本数据类型等等。Convert类型转换通常会检查转换的有效性,如果无法进行转换,会抛出异常,因此在使用时应该注意异常处理
1.通过 Convert.ToInt32把其他类型数据转换成Int类型
string s = "123456";
double d = Convert.ToDouble(s);
Console.WriteLine(d);
int n = Convert.ToInt32(s);
Console.WriteLine(n);
2.一切类型都可以转换为string类型
int a = 10;
string cc= Convert.ToString(a)
Console.WriteLine(cc);
等等.....
int.Parse 和 int.TryParse
1.int.Parse()用于将数字内容的字符串转为int类型。如果字符串为空,则抛出 ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常
string s = "123456";
int dd =int.Parse(s);
Console.WriteLine(dd);
2.int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
bool b = int.TryParse("123abc", out number);
if (int.TryParse("123", out num))
{
Console.WriteLine($"转换成功,num是{num}");
}
//转换失败
else
{
Console.WriteLine($"转换失败");
}