手机
当前位置:查字典教程网 >编程开发 >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#中的where泛型约束介绍

C#中通过API实现的打印类 实例代码

C# 向二进制文件进行读写的操作方法

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

解析C#中委托的同步调用与异步调用(实例详解)

C#中 城市线路图的纯算法以及附带求极权值

精品推荐
分类导航