C#类型转换总结

12 篇文章 0 订阅

C#类型转换说的是把数据从一种类型转换成另一种类型。有隐式转换和显式转换之分。

1、隐式转型和显式转型

隐式类型转换:C#默认的以安全方式进行的转换,不会导致数据丢失。例如从小的整型转换为大的整型,从派生类转换为基类。

显式类型转换:也叫强制类型转换。强制类型转换需要转型运算符(圆括号),强制转换会造成数据丢失或者引发异常。

long longN = 24524342;
int intN = (int)longN;

用户定义类时,可以定义类的类型转换,使用implicit定义类的隐式转换,使用explicit定义类的显式转换。可以参考文章《用户定义的类型转换》。

 

2、使用Parse()方法的类型转换(字符串到数值类型的转换)

C#中每个数值数据类型都包含一个Parse方法,允许将字符串转换成对应的数值类型。

string s = “3.1415”;
float f = float.Parse(s);

使用Parse()方法转型失败会引发异常。C#为每个数值数据类型还提供了一个TryParse()方法,使用该方法转型失败时,不会引发异常,而是返回false。

 

3、使用System.Convert进行类型转换(基元类型之间的相互转换)

System.Convert只支持预定义类型,允许从任何基元类型转换到其他基元类型。C#基元类型包括bool、char、sbyte、short、int、long、ushort、uint、ulong、float、double、decimal、DateTime、string。

string s = "23.123";
double d = System.Convert.ToDouble(s);

 

4、使用ToString()方法输出类型的字符串表示(类型到字符串的转换(字符串表示))

所有类型都支持ToString()方法,使用该方法可以输出类型的字符串表示。用户自定义类型时可以重写Object类的ToString()方法自定义字符串表示。

bool b = false;
string s = b.ToString();

 

5、时间和字符串的相互转换(时间和字符串的相互转换)

使用Convert.ToDateTime()和DateTime.ParseExact()方法可以将字符串转换成时间类型。使用ToString()方法可以将时间类型转换成字符串类型。在进行类型转换时,可以对时间的格式化进行设置。具体格式说明请参考文章《C#时间格式化(Datetime)用法详解》。

 

6、与byte数组相关的类型转换(byte数组类型转换)

具体请参考文章《与byte数组有关的常用的类型转换总结》。

 

7、as和is的用法

可以使用is关键字检查对象是否与给定类型兼容。“兼容”表示对象是该类型,或者派生于该类型。as关键字用于在兼容的引用类型之间执行转换。类似于强制转换操作;如果转换不可行,as 会返回 null 而不会引发异常。

具体请参考文章《请参考文章 as与is用法总结》。

 

关于类型转换,以前写过一篇简短的文字,可以查阅下文。

(int),Convert.ToInt32(),Int32.Parse(),Int32.TryParse()的用法总结

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值