2012-01-18 2 views
1

Может ли функция возвращать значение byref вместо байта по умолчанию? То есть, позвольте мне непосредственно отредактировать переменную, которую она извлекает, вместо того, чтобы просто предоставить мне копию этой переменной.Функция Возвращает Byref

Прямо сейчас я пытаюсь написать функцию, которая будет возвращаться на основе того, что пользователь выбрал через combobox, конкретную настройку (например, 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

Это требует указатель, плохо поддерживается в управляемом коде в общем, совершенно не поддерживается в VB.NET. Простой альтернативой для этого кода является 'Sub AdjustSetting (настройка ByVal As Integer)' –

ответ

1

Function can't return ссылка байт вместо этого вы можете создать свойство (Writable) присвоить значение.

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 
Смежные вопросы