Funktion zu Klasse ?

  • VB.NET

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

    Funktion zu Klasse ?

    Hallo an alle, ich hab schon gegoogelt aber ich finde nichts das mir weiterhilft oder das ich begreife ^^

    und zwar hab ich folgende Klasse erstellt (code von dotnet-snippets ) :

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Security.Cryptography
    2. Imports System.Text
    3. Public Class MD5
    4. Public Function MD5StringHash(ByVal strString As String, ByVal md4 As String) As String
    5. Dim MD5 As New MD5CryptoServiceProvider
    6. Dim Data As Byte()
    7. Dim Result As Byte()
    8. Dim Res As String = ""
    9. Dim Tmp As String = ""
    10. Data = Encoding.ASCII.GetBytes(strString)
    11. Result = MD5.ComputeHash(Data)
    12. For i As Integer = 0 To Result.Length - 1
    13. Tmp = Hex(Result(i))
    14. If Len(Tmp) = 1 Then Tmp = "0" & Tmp
    15. Res += Tmp
    16. Next
    17. Return Res
    18. End Function
    19. End Class


    Aber wie schaffe ich es jetzt das ich im Hauptprogramm die funktion aufrufen kann ? also quasi so :

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim d As String = "passwort"
    2. MsgBox(MD5StringHash(d))


    und das die ausgabe dann halt dem MD5 entspricht, ziel des ganzen ist halt möglichst viele Funktionen in Klassen auszulagern, aber irgendwie raffe ich nicht wie ich das machen kann/soll

    Kann mir da freundlicherweise jemand helfen ?


    MfG AsusDK
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    asusdk schrieb:

    Aber wie schaffe ich es jetzt das ich im Hauptprogramm die funktion aufrufen kann ?
    Du musst im Hauptprogramm mit New eine Instanz dieser Klasse erstellen.

    VB.NET-Quellcode

    1. Dim mm = New MD5
    2. MessageBox.Show(mm.MD5StringHash("Bla", blabla")
    Machst Du aus Tmp = Hex(Result(i))==>

    VB.NET-Quellcode

    1. Tmp = Result(i).ToString("X2") ' sdas ist ein zweistelliger Hex-String

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ahh ok, dann hab ich da wohl zu komliziert gedacht ^^ danke euch viiielmals !

    @EaranMaleasi naja ich hatte den hinzugefügt, weil ich dachte ich muss evtl. da die funktion hinzufügen und das md4 war nur Testweise ^^
    aber naja war wohl komplett falsch gedacht, bin noch recht neu in VB
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Bist du daran interessiert, sauber coden zu lernen?

    Dann empfehle ich dir zwei wesentliche Grundeinstellungen zu tätigen: Visual Studio - Empfohlene Einstellungen
    und anschliessend - vorzugsweise mit unserer Anschub-Hilfe - dein Projekt auf die neue Grundlage anzupassen, denn das wird evtl. viele Schmuddel-Code-Stellen aufdecken, die umzugestalten sind.

    Im weiteren lässt sich Architektur und auch die Methode stark verbessern, weil zur Architektur:
    Eine Klasse zu coden ist hier unangebracht, denn hier liegt eine reine Konverter-Funktion vor, für die man gar kein instanzierbares Objekt braucht.

    Aber eins nachem anderen, und das erste wären die og. Grund-Einstellungen.