C#の拡張メソッドは、引数に this キーワードを付加した変数を ref できるのか?
という話題を先ほど耳にしました。
んで、試してみました。
public static void Test(this ref int value) {}
>パラメータ修飾子 'ref' は 'this' と共に使用することはできません。(IDE のエラー一覧より引用w)
と言う訳で、C# では無理なようです>とりこびとさん
VB.NET だと ByRef が使えるらしいので試してみた・・・
Imports System.Runtime.CompilerServices
Module Module1
Sub Main()
Dim i As Integer = 0
i.Test()
Console.WriteLine(i)
Console.ReadKey()
End Sub
<Extension()> _
Public Sub Test(ByRef value As Integer)
value = 5
End Sub
End Module
VB.NET って難しいっす orz
上記を実行すると、正しく 5 と表示されます。