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

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

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

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

解决C#中取消方向键对控件焦点控制的实现方法

C#中方括号[]的语法及作用介绍

C#中方法的详细介绍

C#中判断本地系统的网络连接状态的方法

精品推荐
分类导航