文章目录
一、变量类型转化
1、什么是类型转换
类型转换就是将一种数据类型转换成另一种数据类型。
2、隐式转化
隐式类型转换是指在某些情况下,编译器会自动将一种类型转换为另一种类型。通常,隐式转换发生在没有丢失信息的情况下,例如从 int 转换为 double,因为 double 可以表示更大范围的数值。
相同类型之间的转换
只能大范围装小范围
csharp
long l = 1;
int i = 1;
l = i;//隐式转换
不能小范围装大范围
大小比
有符号:long > int > short > sbyte
有符号:ulong > uint > ushort > byte
3、显示转换
显式类型转换(又叫强制类型转换
)需要程序员手动指定转换方式。显式转换通常在存在潜在丢失信息的情况下使用,比如将一个较大的类型(double)转换为较小的类型(int)。这种转换如果没有强制执行,编译器会报错。
3.1 括号强转
一般情况下是将高精度的类型强制转换为低精度
语法
csharp
变量类型 变量名 = (变量类型)变量
示例
从 double 转换到 int(可能丢失数据)
csharp
float f= 9.78f;
int intValue = (int)f; // 强制转换,会丢失小数部分
Console.WriteLine(intValue); // 输出 9
注意
- 可能丢失精度数据,浮点转整数会直接抛弃后面的小数
- 一定要注意范围,不然可能报错
- bool和string是不能通过括号强转的
3.2 使用 Parse 和 TryParse 方法
有时我们需要将字符串
转换为数值
类型,Parse 和 TryParse 是非常有用的两种方法。
- Parse:如果转换失败,会抛出异常。
- TryParse:如果转换失败,不会抛出异常,返回 false,适合处理可能的转换错误。
语法
csharp
变量类型.Parse("字符串");
变量类型.TryParse("字符串");
示例
使用 int.Parse()
csharp
string numberString = "123";
int number = int.Parse(numberString);
Console.WriteLine(number); // 输出 123
float f = float.Parse(numberString);
Console.WriteLine(f); // 输出 123
使用 TryParse()
csharp
string numberString = "abc";
//尝试转换,失败时不会抛出异常,成功返回True,失败返回false
//number就是转换后的变量,out 关键字先不用管,后面会再介绍
bool result = int.TryParse(numberString, out int number);
3.3 使用 Convert 类进行转换
更准确的将各个类型之间进行相互转换,它会自动判断如何转换,避免了你手动进行转换操作。
语法
csharp
Covert.To目标类型(变量或常量)
示例
其他类型转string类型
csharp
string f = Convert.ToString(123);
如果是把字符串转对应类型那字符串一定要合法合规,Int32就是我们前面一直说的int类型
csharp
int i = Convert.ToInt32("A");//会报错,因为A不是数字
int i2 = Convert.ToInt32("123");//正确
bool b = Convert.ToBoolean("true");//正确
bool f = Convert.ToBoolean("12.12");//正确
数值转换精度比括号强转会好点, Convert 会四舍五入
csharp
float doubleValue = 9.78f;
int intValue = Convert.ToInt32(doubleValue);
Console.WriteLine(intValue); // 输出 10
把bool类型也可以转换成数值类型 true对应1 false对应0,反过来就不行
csharp
int i1 = Convert.ToInt32(true);// 输出 1
int i2 = Convert.ToInt32(false);// 输出 0
3.4 .ToString()其他类型转string
更方便的转string类型方法
语法
csharp
变量.ToString();
示例
其他类型转string类型
csharp
string str = 123.ToString();
string str1 = true.ToString();
string str2 = 12.12f.ToString();
当我们进行字符串拼接时就自动会调用ToString转成string
csharp
string str3 = 123 + "abc" + true;
Console.WriteLine(str3);
二、异常捕获
通过对异常捕获的学习,可以避免
当代码报错
时造成程序卡死的情况
1、基本语法结构
csharp
try
{
// 希望进行异常捕获的代码块
// 这里放置可能会抛出异常的代码
}
catch (Exception e) // 如果出现异常,捕获并处理
{
// 通过 e 获取具体的错误信息
Console.WriteLine("发生异常: " + e.Message);
// 可以进一步处理异常,比如日志记录、通知等
}
//可选,非必须
finally
{
// 最终执行的代码,是否发生异常都会执行
Console.WriteLine("无论是否发生异常,这里的代码都会执行");
}
2、使用
比如前面说的转换代码
csharp
int i = Convert.ToInt32("A");//会报错,因为A不是数字
Console.WriteLine(i);
Console.WriteLine("执行通过");
如果我们直接运行,肯定会报错,导致程序运行卡死,自然也打印不出执行通过
如果我们修改代码,加入异常捕获代码,如下
csharp
try
{
int i = Convert.ToInt32("A");//会报错,因为A不是数字
Console.WriteLine(i);
}
catch (Exception e)
{
Console.WriteLine("发生异常: " + e.Message);
}
finally
{
// 最终执行的代码,是否发生异常都会执行
Console.WriteLine("无论是否发生异常,这里的代码都会执行");
}
Console.WriteLine("执行成功");
结果,程序顺利执行
3、作用
通过使用异常捕获,你可以有效地处理程序中的错误,提供用户友好的错误信息,并保证程序的稳定性和可维护性。可以进一步处理异常,比如日志记录、通知等会很有用。
专栏推荐
地址 |
---|
【从零开始入门unity游戏开发之------C#篇】 |
【从零开始入门unity游戏开发之------unity篇】 |
【制作100个Unity游戏】 |
【推荐100个unity插件】 |
【实现100个unity特效】 |
【unity框架开发】 |
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~