2010-06-13 53 views
5

尽管存在ParameterInfo.IsOut,ParameterInfo.IsIn,但我很惊讶地发现“ref”和“out”参数没有用特殊属性标记(据我所见,这两者总是假的),ParameterAttributes.In和ParameterAttributes.Out。相反,“ref”参数实际上是由一种特殊的“Type”对象表示的,而“out”参数只是具有附加属性(我还不知道哪种属性)的ref参数。反射:如何获得by-ref类型的基础类型

无论如何,要调用Type.MakeByRefType()的By-ref参数,但我的问题是,如果您已经有一个by-ref类型,那么如何返回原始Type?

提示:这是不是UnderlyingSystemType:

Type t = typeof(int); 
Console.WriteLine(t.MakeByRefType().UnderlyingSystemType==t); // FALSE 

回答