首页 > 代码库 > C# 类型转换

C# 类型转换

隐式转换和显式转换:

隐式转换:C# 默认的以安全方式进行的转换。本质是从小存储容量数据类型自动转换为大存储容量数据类型。

实例:

namespace TypeConvertion
{   class Class1
    {

	}

	class Class2 : Class1 //类Class2是类Class1的子类
	{

	}
	class Program
	{
	    static void Main(string[] args)
	    {
	        int inum = 100;
	        long lnum = inum; // 进行了隐式转换,将 int 型(数据范围小)数据转换为了 long 型(数据范围大)的数据
	        Class1 c1 = new Class2(); // 这里也是隐式转换,将一个新建的 Class2 实例转换为了其基类 Class1 类型的实例 C1
	    }
	}
}

显式转换:通过用户使用预定义的函数显式完成的,显式转换需要强制转换运算符。

转换类型的范围大小和从属关系和隐式转换相反。显式转换可能会导致数据出错,或者转换失败,甚至无法编译成功。

实例:

double dnum = 100.1;
int ifromd = (int)dnum; //double类型显式转换转为int类型


Class1 c11 = new Class1();
Class2 c22 = c11 as Class2; //使用as进行显式转换
Console.WriteLine(c22 is Class1);
Console.WriteLine(c22 is Class2);

运行结果:
 false;
 false;

C# 类型转换