转换数据类型的统一方法

Mar*_*der 5 .net c# converter typeconverter

.NET知道很多转换数据类型的方法:

  • Convert-类;
  • (Try)ParseToString等类型中的函数;
  • 接口的实现IConvertable;
  • TypeConverter;
  • 隐式和显式转换运算符;
  • 我错过了另一个吗?

因此,如果要将一种数据类型转换为另一种数据类型,我需要知道这两种类型,并且我需要知道要使用哪种转换方法.如果这两种类型中的一种(或两者)是泛型类型,这就变得非常讨厌.

所以我的问题是:我在.NET中有统一(通用)方式将一种数据类型转换为另一种数据类型,这可能会使用所有其他有限的方法吗?

Tim*_* S. 2

在类型之间进行转换的一种很好的通用方法是使用Convert.ChangeType. 以下是如何使用它来编写通用转换方法的示例:

public static TResult Convert<TResult>(IConvertible source)
{
    return (TResult)System.Convert.ChangeType(source, typeof(TResult));
}
Run Code Online (Sandbox Code Playgroud)

Convert与其他方法一样,它在内部调用IConvertible接口。

这不会使用您的其他转换选项:

  • 我认为最常见的是ToString;为此,您可以添加一个检查来查看是否TResultstring,如果是,(在适当的空检查之后)只需调用ToString您的输入即可。
  • 使用反射你可以检查:

如果您对反思有所了解,那么这些都是不言自明的,但如果有困难的话我可以详细说明。