Cast to a reflected Type in C#

后端 未结 3 883
感情败类
感情败类 2021-01-31 05:15

Consider the following code:

object objFoo = MakeFoo(); // object MakeFoo(){return new Foo();}
MethodInfo methodInfo = typeof(Program).GetMethod(\"Baz\"); // Fo         


        
3条回答
  •  南旧
    南旧 (楼主)
    2021-01-31 05:35

    This would be equivalent to:

    object objFoo = MakeFoo();
    Foo result = (Foo)objFoo;
    

    There's no real point in casting an object to a type that's unknown at compile time - you won't be able to use it:

    object objFoo = MakeFoo();
    UnkownType result = (UknownType)objFoo;
    

    Since you don't know what UknownType is, you won't be able to use any of its methods without resorting to reflection, or to dynamics.

提交回复
热议问题