12

ParameterInfo.IsOut、ParameterInfo.IsIn (私が見る限りどちらも常に false)、ParameterAttributes が存在するにもかかわらず、"ref" および "out" パラメーターが特別な属性によってマークされていないことを知って驚きました。 In および ParameterAttributes.Out。代わりに、「ref」パラメーターは実際には特別な種類の「Type」オブジェクトによって表され、「out」パラメーターは追加の属性 (どのような属性かはまだわかりません) を持つ単なる ref パラメーターです。

とにかく、参照による引数を作成するには Type.MakeByRefType() を呼び出しますが、私の質問は、参照による型が既にある場合、どうすれば元の型に戻るのでしょうか?

ヒント: UnderlyingSystemType ではありません:

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

1 に答える 1

18

コールしGetElementType()ます。

于 2010-06-13T20:04:41.333 に答える