Convert.ChangeType快捷方式吗?

Nic*_*ick 1 .net c#

我想知道匹配Object Convert.ChangeType( Object object, Type type)类型时内部会发生什么.它只是简短而且回归?objecttypeobject

例如:

object objString = "Hello World";

string converted = (string) Convert.ChangeType( objString, typeof ( String ) );
Run Code Online (Sandbox Code Playgroud)

请问实现ChangeType实际调用IConvertible接口还是只返回objString?

Raw*_*ing 6

根据Microsoft的C#参考源,Convert.ChangeType(Object, Type)执行以下一般行为:

  • 如果输入为null
    • 如果类型是值类型,则抛出.
    • 否则返回null.
  • 如果输入不是 IConvertible
    • 如果类型完全是输入的类型,则返回输入.
    • 否则扔.
  • 如果类型是开箱即用的核心可转换类型之一,则ToWhatever在输入上调用相应的方法.
    • 在每种情况下,实现似乎是return this类型匹配或return Convert.ToWhatever(this)否则,这是排序的快捷方式.
  • 否则调用ToType输入,传递类型.