<p>要调用具有<code>out</code>参数的方法,只需省略参数(因为您并没有真正传递一个值),它的返回值将是一个元组,其中包含函数的结果(如果它不是<code>void</code>)和{<cd1>}值的定义顺序。在</p>
<p>在<code>ref</code>参数的情况下,传入参数,它仍将返回到元组中。对象上的任何突变都将按预期工作。在</p>
<p>例如</p>
<pre><code>>>> from System import Int32
>>> Int32.TryParse('12345')
(True, 12345)
>>> Int32.TryParse('12345x')
(False, 0)
</code></pre>
<p>我做了一个测试,这样你就可以知道如何称呼不同的变体。在</p>
^{pr2}$
<pre><code>>>> from TestLibrary import Test
>>> Test.Test1()
1
>>> Test.Test2()
(True, 2)
>>> Test.Test3(1, 3)
4
>>> Test.Test4(1, 3)
(True, 4)
>>> Test.Test5(1, 3)
(4, 3)
>>> Test.Test6(1, 3)
(False, 4, 3)
>>> Test.Test7(1, 3, 5)
"5" -> "6"
(4, 3, 6)
>>> Test.Test8(1, 3, 5)
"5" -> "6"
(False, 4, 3, 6)
>>> from System import Array
>>> array = Array.CreateInstance(int, 10)
>>> array
Array[int]((0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
>>> Test.Test9(1, 3, 5, array)
"5" -> "6"
(False, 4, 3, 6, Array[int]((0, 1, 2, 3, 4, 5, 6, 7, 8, 9)))
>>> array
Array[int]((0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
</code></pre>
<p>或者,如果希望使用C样式调用,则需要传入一个<code>clr.Reference[T]</code>对象来代替<code>out</code>/<code>ref</code>参数来保存该值。您可以通过<code>Value</code>属性访问该值。在</p>
<pre><code>>>> outval = clr.Reference[int]()
>>> Test.Test1(outval)
>>> outval
<System.Int32 object at 0x000000000000002B [1]>
>>> outval.Value
1
</code></pre>