在ByRef内部方法上指定OutAttribute当前是做什么的吗?

Mar*_*urd 9 vb.net out byref

VB.NET没有out参数,但您可以<Out()> ByRef在COM和P/Invoke方法上指定以获得与外部方法相同的效果.

在内部方法上指定相同的方法(即仅由.NET代码调用的方法)实际上是否有助于Jitter(或VB.NET编译器)?或者它目前仅作为程序员注释有用.

它是否有可能在未来的Jitter中使用,或者在编译时这个属性是否会丢失?

Mar*_*urd 9

我已经确认VB.NET <Out()>确实会导致C#客户端需要out参数,所以它看起来确实有效.

另外一个C#客户端通过其参数与当前值入法,但因为不像COM或P/Invoke的情况下,有没有编组做并不奇怪.(和C#将不允许属性通过设置out参数直接,因此似乎没有成为一个方法,如果C#将优化掉以前的不必要的分配.)

所以似乎答案是它确实有助于未来的C#客户端使用代码,如果抖动调整了C#等价物,它在这里也会这样做.虽然因为像VB这样的语言存在,但它不能做太多,因为它们不尊重Out属性本身.