2012-01-18 32 views
1

関数は、デフォルトのbyvalではなくbyrefを返すことができますか?つまり、変数のコピーを私に渡すのではなく、取り出す変数を直接編集することができます。関数戻り値

今は、ユーザーがコンボボックスで選択した内容に基づいて、特定の設定(My.Settings.somethingHereなど)を返す関数を作成しようとしています。私は、関数を呼び出すだけで直接設定を編集できるようにしたいと考えています。それはすべて可能ですか?バイトの

private function myFunction() as byte 
    select case comboBox1.text 
    case "a" 
     return my.settings.a 
    case "b" 
     return my.settings.b 
    end select 
end function 

private sub something() 
    myFunction() -= 1 
end sub 
+0

。このコードの簡単な代替案は 'Sub AdjustSetting(ByVal Adjust as Integer)'です。 –

答えて

1

Function can't return参照の代わりに、あなたは値を代入するには、プロパティ(書き込み可能)を作成することができます。

不十分VB.NETで完全にサポートされていない、一般的にマネージコードでサポートされている、ポインタを必要
Public WriteOnly Property Change As SByte 
     Set(value As SByte) 
      Select Case comboBox1.text 
       Case "a" 
        My.Settings.a = value 
       Case "b" 
        My.Settings.b = value 
      End Select 
     End Set 
End Property 

とプロパティを変更するために値を割り当て、

private sub something() 
    Change -= 1 
end sub