C#中的数据类型之间的转换(Parse、TryParse、Convert、is、as)

前言

        Convert、Parse、TryParse 、(int)四个函数都是将值转换成整数,但是四者之间各有异同,还可以通过is、as进行数据类型转换,开发人员可以根据情况选用最合适的。本篇介绍数据类型直接转换希望对大家有所帮助。

一. 隐式类型转换和显示类型转换

1. 自动类型转换(隐式类型转换)
    不同类型之前进行计算时,数据类型会往大的数据类型转换
2. 强制类型转换(显示类型转换)
    强制类型转换往往是从宽大的类型转换为小的数据类型

	int a = 10;
	double b = 20.5;
	double c = a +b;//低级转高级,自动转换
	int d = (int) c;//高级转低级,强制转换

二. 使用Parse进行数据类型转换

方法说明
int.Parse(string value)字符串类型转换成整数类型(int)
char.Parse(string value)字符串类型转换成字符类型(char)
double.Parse(string value)字符串类型转换成单精度浮点类型(double)
Single.Parse(string value)字符串类型转换成双精度浮点类型(float)

注意:

  1. 该方式是将字符串转换为整数类型;
  2. 如果字符串内容为空或者null时,则抛出ArgumentNullException异常;
  3. 如果字符串内容不是数字,则抛出FormatException异常;
  4. 如果字符串内容所表示数字超出指定的数据类型可表示的范围,则抛出OverflowException异常。

三. 使用TryParse进行数据类型转换

方法说明
int.TryParse(string s, out int result)字符串类型转换成整数类型(int)
char.TryParse(string s, out char result )字符串类型转换成字符类型(char)
double.TryParse(string s, out double result)字符串类型转换成单精度浮点类型(double)
Single.TryParse(string s, out float result)字符串类型转换成双精度浮点类型(float)
	Console.Write("请输入int类型的整数:");
	int result = 0;
    bool flag = int.TryParse(Console.ReadLine(),out result);
    if(flag)
    {
    	Console.WriteLine($"您输入的数字为{result}");
	}
    else
    {
    	Console.WriteLine("输入错误!");
	}

注意:

  1. 该方式是将字符串转换为整数类型,但是它不会出现异常。
  2. 如果转换成功返回 true,如果转换失败返回 false。
  3. 很明显,最后一个参数为输出值,如果转换失败,输出值为 0;如果转换成功,则输出相应的值。

四. 使用Convert进行数据类型转换

方法说明
Convert.ToInt32()转换为整数类型(int)
Convert.ToChar()转换为字符型(char)
Convert.ToDouble()转换为双精度浮点型(double)
Convert.ToSingle()转换为单精度浮点型(float)
Convert.ToString()转换为字符串类型(string)
Convert.ToDateTime()转换为日期类型(datetime)

注意:

  1. 如果相兼容的两个变量,可以使用自动类型转化或者强制类型转换.
  2. 如果两个变量不兼容,我们就需要用到convert类进行转换。
  3. 转换为int型数据后进行 了四舍五入的计算。
  4. 使用Convert进行强制类型转化也要满足一个条件;那就是面上要过得去。例如:string num = “123abc”;不能转换成数值数值型

五. 使用 is 进行数据类型转换

	object o = "abc";
    if (o is string) //执行第一次类型兼容性检查
    {
        string s = (string)o; //执行第二次类型兼容性检查,并转换
        MessageBox.Show("转换成功!");
    }
    else
    {
        MessageBox.Show("转换失败!");
    }

is转换规则:

  1. 检查对象类型的兼容性,并返回结果true(false);
  2. 不会抛出异常;
  3. 如果对象为null,刚返回false;

六. 使用 as 进行数据类型转换

	 object o = "abc";
    string s = o as string; //执行第一次类型兼容性检查,并返回结果
    if (s != null)
    {
        MessageBox.Show("转换成功!");
    
    }
    else
    {
        MessageBox.Show("转换失败!");
	}

as转换规则:

  1. 检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
  2. 不会抛出异常;
  3. 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
  4. as 比 is 少执行一次兼容性检查,性能可能会高一点点。
  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
C#TryParse方法是一种用于将字符串转换为特定类型的方法,它可以避免在转换失败时引发异常。常见的一些TryParse方法包括Enum.TryParse、DateTime.TryParse、Double.TryParse、Decimal.TryParse、Guid.TryParse、TimeSpan.TryParse和int.TryParse等。这些方法可以用于将字符串转换为相应的枚举值、日期时间、浮点数、十进制数、全局唯一标识符、时间间隔和整数等数据类型。 与一些其他的转换方法(如int.Parse)相比,TryParse方法具有更好的容错性。当转换失败时,TryParse方法会返回一个布尔值,指示转换是否成功,并将转换后的值存储在一个输出参数。这样,我们可以根据返回的布尔值来确定转换是否成功,并且不会引发异常。 另外,Convert.ToInt32和(int)也可以将类型转换为整数,但它们的使用方式略有不同。Convert.ToInt32方法可以将各种类型(如字符串、布尔值、日期时间等)转换为整数,而(int)则是一种显式类型转换的方式。int.Parse和Int32.Parse是将字符串转换为整数的方法,如果转换失败会引发异常,而int.TryParse是将字符串转换为整数的另一种方法,它返回一个布尔值来指示转换是否成功,避免了异常的引发。 综上所述,C#TryParse方法是一种更安全、更可靠的数据转换方法,可以避免异常的引发,并提供了更好的容错性。在需要将字符串转换为特定类型时,可以使用相应的TryParse方法来进行转换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自学之路←_←

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值