2010-06-13 89 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 

回答