C#类型转换总结
Posted 三五月儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#类型转换总结相关的知识,希望对你有一定的参考价值。
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()的用法总结
以上是关于C#类型转换总结的主要内容,如果未能解决你的问题,请参考以下文章