Function (String angeben) (Eigenschaft)

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Function (String angeben) (Eigenschaft)

    Hey,
    ich hab folgenden Code:

    VB.NET-Quellcode

    1. Public Sub entschlüsseln(ByVal zuentschlüssenderstring As String)
    2. zuentschlüssenderstring=zuentschlüssenderstring.replace("1", "0")
    3. End Sub


    label1.text = "111122"
    und eigentlich will ich das wenn ich woanders z.B "label1.text = entschlüsseln(label1.text)" schreibe, das...
    label1.text = "000022" rauskommt.

    Aber ich kann nichtmal entschlüsseln anschreiben etc. es wird nicht angezeigt.
    Hilfe!

    Mfg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „domipoppe“ ()

    Weil Du eine Sub hast, somit keinen Rückgabewert. Was Du brauchst ist eine Function, dann klappt es auch mit Intellisense.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String) As String
    2. return ZuEntschlüsselnderString.Replace()...... 'hier Deine Anweisungen
    3. End Function


    Du musst einen Rückgabetyp angeben. Dazu bitte OptionStrict ON, siehe Signatur.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    der Code aus Post 1 würde gehen, wenn der Parameter mit ByRef übergeben wird

    VB.NET-Quellcode

    1. Public Sub entschlüsseln(ByRef zuentschlüssenderstring As String)
    2. zuentschlüssenderstring=zuentschlüssenderstring.replace("1", "0")
    3. End Sub

    und der Methodenaufruf so aussieht:

    VB.NET-Quellcode

    1. DeineSub(Label1.Text)
    So macht das aber kein Mensch.


    Besser ist als Funktion, dann aber

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String)
    2. Return zuentschlüssenderstring.replace("1", "0")
    3. End Function
    also mit Return, statt mit einer Zuweisung. Der Funktionsaufruf läuft dann wie in Post 1 von dir beschrieben.


    Return nur dann wenn er zurückgegeben werden soll!
    So eine Frage noch.

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String)
    2. Return ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("`", "1")
    3. Return ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")
    4. End Function
    5. Form1_load:
    6. dim teststring as string = "```???"
    7. msgbox(entschlüsseln(teststring))


    In der MsgBox steht nun "True". Liegt das daran das ich Option Strict nicht auf ON gesetzt habe oder was ist falsch?

    Mfg
    Ein Return hat das Verlassen der Function zur Folge. 2x Return direkt hintereinander bringt Dir gar nichts, da das 2. nicht mehr ausgeführt wird. Gib einen Rückgabetyp an.

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String) AS STRING
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Die Aussage, ein Return verlässt die Function, ist eigentlich selbsterklärend. Kommt die Codeausführung an diesem Punkt an, so wird der Wert hinter dem Return an den Aufrufer zurückgegeben und die Function beendet. Was nicht heisst, dass eine Function nicht mehrere Returns haben kann. Beispiel.

    VB.NET-Quellcode

    1. Public Function ReturnSomething(ByVal selection As Integer) As String
    2. Select Case selection
    3. Case 0
    4. Return "Du hast 0 gewählt"
    5. Case 1
    6. Return "Du hast 1 gewählt"
    7. Case 2
    8. Return "Du hast 2 gewählt"
    9. Case Else
    10. Return "Du hast irgenwas gewählt"
    11. End Select
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Puh. Okay. ich glaube ich habs kapiert.
    Doch:

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String) as String
    2. ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("`", "1")
    3. Return ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")
    4. End Function
    5. Form1_load:
    6. dim teststring as string = "```???"
    7. msgbox(entschlüsseln(teststring))


    die MsgBox gibt IMMERNOCH "True" aus.
    im return hat ein "Gleichnis" nichts verloren. Es erfolgt weder eine Zuweisung, noch ein Vergleich.

    VB.NET-Quellcode

    1. ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")
    2. Return ZuEntschlüssenderString
    Dann hast Du OptionStrict aber nicht auf ON, sonst hättest Du nen Fehler.

    Du schreibst...

    VB.NET-Quellcode

    1. ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")


    Das ergibt einen Boolean....

    Richtig ists so.

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String) As String
    2. Return ZuEntschlüssenderString.Replace("`", "1").Replace("?", "2")
    3. End Function


    Und gugg nochmal wg. OptionStrict, genau darum passieren solche Fehler, wenn man es nicht auf ON hat.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Option Stric ist ON.

    Es ist egal wie ichs mach ob:
    ZuEntschlüssenderString.Replace("`", "1").Replace("?", "2") 'Was auch immer das für einen Sinn ergibt er tut ja den bereits verschlüsselden String nochmal verschlüsseln und dann entschlüsseln
    oder
    ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")
    oder
    ZuEntschlüssenderString.replace("`", "!")
    oder am Ende
    Return ZuEntschlüssenderString

    es kommt immer True rauß.

    VB.NET-Quellcode

    1. Public Function entschlüsseln(ByVal ZuEntschlüssenderString As String) as String
    2. ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("`", "1")
    3. ZuEntschlüssenderString = ZuEntschlüssenderString.Replace("?", "2")
    4. Return ZuEntschlüssenderString
    5. End Function