Q:

VB.NET - Проблемы с replace через function

Идет у меня значит функция:
Public Shared Function strEnc(ByVal dga As String) As String
        dga = dga.Replace(" ", " 00000 ")
        dga = dga.Replace("a", " 00100 ")
        ...
        dga = dga.Replace("`9`", " 05029 ")
        Return dga
End Function

И при использовании функции возвращается тот же текст что и был введен, то есть никаких изменений, что ввел, то и выдал, хотя должен вернуть замененную строку. Я уже минут 30 сижу и не понимаю в чем проблема. Вне функции код работает, а в ней уже нет.

A:

Если правильно понимаю, input и output - поля для ввода текста TextBox.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    output.Text = StrEnc(input.Text)
End Sub

Public Function StrEnc(dga As String) As String
    dga = dga.Replace(" ", " 00000 ")
    dga = dga.Replace("a", " 00100 ")
    dga = dga.Replace("9", " 05029 ")
    Return dga
End Function

Можно передавать по ссылке параметр, тогда получится:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim dga As String = input.Text
    StrEnc(dga)
    output.Text = dga
End Sub

Public Function StrEnc(ByRef dga As String) As String
    dga = dga.Replace(" ", " 00000 ")
    dga = dga.Replace("a", " 00100 ")
    dga = dga.Replace("9", " 05029 ")
    Return dga
End Function

Все отрабатывает как надо:

