これがvb.netで見つけた、理解できない小さなものです。ツリービューが表示されたフォームがあり、次のようになっています。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
treeTest.Nodes.Add("a")
treeTest.Nodes(0).Test()
End Sub
テストは拡張メソッドです。
Imports System.Runtime.CompilerServices
Public Module ExtModule
<Extension()>
Public Sub Test(ByRef node As TreeNode)
End Sub
End Module
ByRefを使用すると、ツリービューは次のようになります。
そしてByValで私は得ます:
これは完全に逆のように見えます。単に参照を送信している場合、ノードが2回表示されるのに、コピーを作成すると1回しか表示されないのはなぜですか。