手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#中判断某类型是否可以进行隐式类型转换
C#中判断某类型是否可以进行隐式类型转换
摘要:C#中,有些类型是可以隐式转换的,我整理了这些可以隐式转换的类型,供大家参考复制代码代码如下:staticprivateboolCanCon...

C#中,有些类型是可以隐式转换的,我整理了这些可以隐式转换的类型,供大家参考

复制代码 代码如下:

static private bool CanConvert(Type from, Type to)

{

if (from.IsPrimitive && to.IsPrimitive)

{

TypeCode typeCodeFrom = Type.GetTypeCode(from);

TypeCode typeCodeTo = Type.GetTypeCode(to);

if (typeCodeFrom == typeCodeTo)

return true;

if (typeCodeFrom == TypeCode.Char)

switch (typeCodeTo)

{

case TypeCode.UInt16: return true;

case TypeCode.UInt32: return true;

case TypeCode.Int32: return true;

case TypeCode.UInt64: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from Byte follow.

if (typeCodeFrom == TypeCode.Byte)

switch (typeCodeTo)

{

case TypeCode.Char: return true;

case TypeCode.UInt16: return true;

case TypeCode.Int16: return true;

case TypeCode.UInt32: return true;

case TypeCode.Int32: return true;

case TypeCode.UInt64: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from SByte follow.

if (typeCodeFrom == TypeCode.SByte)

switch (typeCodeTo)

{

case TypeCode.Int16: return true;

case TypeCode.Int32: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from UInt16 follow.

if (typeCodeFrom == TypeCode.UInt16)

switch (typeCodeTo)

{

case TypeCode.UInt32: return true;

case TypeCode.Int32: return true;

case TypeCode.UInt64: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from Int16 follow.

if (typeCodeFrom == TypeCode.Int16)

switch (typeCodeTo)

{

case TypeCode.Int32: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from UInt32 follow.

if (typeCodeFrom == TypeCode.UInt32)

switch (typeCodeTo)

{

case TypeCode.UInt64: return true;

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from Int32 follow.

if (typeCodeFrom == TypeCode.Int32)

switch (typeCodeTo)

{

case TypeCode.Int64: return true;

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from UInt64 follow.

if (typeCodeFrom == TypeCode.UInt64)

switch (typeCodeTo)

{

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from Int64 follow.

if (typeCodeFrom == TypeCode.Int64)

switch (typeCodeTo)

{

case TypeCode.Single: return true;

case TypeCode.Double: return true;

default: return false;

}

// Possible conversions from Single follow.

if (typeCodeFrom == TypeCode.Single)

switch (typeCodeTo)

{

case TypeCode.Double: return true;

default: return false;

}

}

return false;

}

【C#中判断某类型是否可以进行隐式类型转换】相关文章:

C# 分支与循环介绍

C#中方法的详细介绍

C#中时间的几种格式转换方法

判断图片-判断位图是否是黑白图片的方法

C# 正则判断一个数字的格式是否有逗号的代码

visio二次开发--判断文档是否已发生变化(变化就加星号*)

c# 引用类型与值类型的区别详解

C#中英文混合字符串截取函数

c#中判断字符串是不是数字或字母的方法

C# 判断字符串第一位是否为数字

精品推荐
分类导航