C#基础-类型转换

类型变量不兼容的类型转换

类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换
但是,如果两个类型的变量不兼容,比如string与int或者string与double
这个时候我们有三种方法进行转换,前提条件是面儿上必须过的去

Q1:比如将一个数字的字符串转换数字?string str = “123”;

string str = "123";
var str1 = Convert.ToInt32(str);

var str2 = int.Parse(str);

int number = 0;
bool b = int.TryParse(str,out number);

Console.WriteLine(str1);//123
Console.WriteLine(str2);//123
Console.WriteLine(number);//123
Console.WriteLine(b);//true
Console.ReadKey();

结果是
在这里插入图片描述


Q2:比如将一个小数的字符串转换小数?string str = “1238.5”;

string  str = "1238.5";
var str1 = Convert.ToDecimal(str);

var str2 = decimal.Parse(str);

decimal number = 0;
bool b = decimal.TryParse(str,out number);

Console.WriteLine(str1);//1238.5
Console.WriteLine(str2);//1238.5
Console.WriteLine(number);//1238.5
Console.WriteLine(b);//true
Console.ReadKey();

结果是
在这里插入图片描述


Q3:比如将时间格式的字符串转换为时间?string str = “2021-09-07”;

string str = "2021-09-07";
var str1 = Convert.ToDateTime(str);

var str2 = DateTime.Parse(str);

DateTime  dt = new DateTime();
bool b = DateTime.TryParse(str, out dt);

Console.WriteLine(str1);//2021/9/7 0:00:00
Console.WriteLine(str2);//2021/9/7 0:00:00
Console.WriteLine(dt);//2021/9/7 0:00:00
Console.WriteLine(b);//true
Console.ReadKey();

结果是
在这里插入图片描述
Q4.枚举与int类型和string类型的转换
1.枚举类型默认是跟int类型相互兼容的,所有可以通过强转,当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来

2.枚举类型如果跟string类型相互转换,直接ToString()
但是如果将字符串换成枚举类型则需要(要转换的枚举类型)Enum.Parse(typeof(要转换的类型),“要转换的字符串”)
如果转换的字符串是数字,就算枚举中没有,也不会抛异常
如果转换的字符串是文本,如果枚举中没有,则会抛出异常

public enum Gender
{,}

 string str = "1";
 Gender gender = (Gender)Enum.Parse(typeof(Gender), str);
 Console.WriteLine(gender);
 Console.ReadKey();//女

结果是
在这里插入图片描述

总结:
1.Convert.ToInt32()的底层就是int.parse() ,所以int.parse()效率更高
2.如果数字型的字符串转换为数字,则三种方法都一样,但如果不是存数字的字符串,那么转的时候Convert.ToInt32()int.parse()会抛异常,而int.TryParse()数字型会是0,布尔型会是false,时间是0001/1/1 0:00:00

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值