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#,.Net,c#,类型转换,as和is,Parse(),System.Convert)