C# -> Vb.net probleme

  • VB.NET
  • .NET 5–6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von FZI.

    C# -> Vb.net probleme

    Hallo ihr lieben,

    kann mir jemand helfen diesen C# code in vb.net umzusetzen? Ich versuche einen Discord Bot in vb.net mit dem Nuget paket Discord.net zu schreiben. Leider ist mein c# wissen weit im minus bereich. :)

    C#-Quellcode

    1. class Program
    2. {
    3. public static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
    4. private DiscordSocketClient _client;
    5. public async Task MainAsync()
    6. {
    7. _client = new DiscordSocketClient();
    8. _client.Log += Log;
    9. _client.MessageReceived += ClientOnMessageReceived;
    10. var token = "Your Token Here";
    11. await _client.LoginAsync(TokenType.Bot, token);
    12. await _client.StartAsync();
    13. // Block this task until the program is closed.
    14. await Task.Delay(-1);
    15. }
    16. private static Task Log(LogMessage msg)
    17. {
    18. Console.WriteLine(msg.ToString());
    19. return Task.CompletedTask;
    20. }
    21. private static Task ClientOnMessageReceived(SocketMessage arg)
    22. {
    23. if (arg.Content.StartsWith("!helloworld"))
    24. {
    25. arg.Channel.SendMessageAsync($"User '{arg.Author.Username}' successfully ran helloworld!");
    26. }
    27. return Task.CompletedTask;
    28. }
    29. }


    Dies habe ich mit einem Converter gemacht aber lauffähig scheint das noch lange nicht ^^

    VB.NET-Quellcode

    1. Class Program
    2. Public Shared Sub Main(ByVal args As String())
    3. Return New Program().MainAsync().GetAwaiter().GetResult()
    4. End Sub
    5. Private _client As DiscordSocketClient
    6. Public Async Function MainAsync() As Task
    7. _client = New DiscordSocketClient()
    8. _client.Log += AddressOf Log
    9. _client.MessageReceived += AddressOf ClientOnMessageReceived
    10. Dim token = "Your Token Here"
    11. Await _client.LoginAsync(TokenType.Bot, token)
    12. Await _client.StartAsync()
    13. Await Task.Delay(-1)
    14. End Function
    15. Private Shared Function Log(ByVal msg As LogMessage) As Task
    16. Console.WriteLine(msg.ToString())
    17. Return Task.CompletedTask
    18. End Function
    19. Private Shared Function ClientOnMessageReceived(ByVal arg As SocketMessage) As Task
    20. If arg.Content.StartsWith("!helloworld") Then
    21. arg.Channel.SendMessageAsync($"User '{arg.Author.Username}' successfully ran helloworld!")
    22. End If
    23. Return Task.CompletedTask
    24. End Function
    25. End Class


    Danke! :)
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Meinst du so?

    VB.NET-Quellcode

    1. AddHandler _client, New EventHandler(AddressOf DiscordSocketClient())
    2. AddHandler _client.Log, New EventHandler(AddressOf Log())
    3. AddHandler _client.MessageReceived, New EventHandler(AddressOf ClientOnMessageReceived())

    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!

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

    die Klammern müssen weg

    VB.NET-Quellcode

    1. AddHandler _client, New EventHandler(AddressOf DiscordSocketClient)
    2. AddHandler _client.Log, New EventHandler(AddressOf Log)
    3. AddHandler _client.MessageReceived, New EventHandler(AddressOf ClientOnMessageReceived)
    und vereinfacht:

    VB.NET-Quellcode

    1. AddHandler _client, AddressOf DiscordSocketClient
    2. AddHandler _client.Log, AddressOf Log
    3. AddHandler _client.MessageReceived, AddressOf ClientOnMessageReceived
    Das kommt jetzt aber dann doch n bisken darauf an, ob die EventHandler-Signatur zu der vom Event vorgegebenen passt …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    naja, davon geh ich ja mal aus - sonst kompilierts weder in c# noch in vb.net.

    Übrigens fällt mir grad auf:

    VB.NET-Quellcode

    1. AddHandler _client, AddressOf DiscordSocketClient
    sieht sehr nach Unfug aus (den ich halt so abgeschrieben hatte)
    Also das hat der Converter schon richtig übersetzt gehabt, mit

    VB.NET-Quellcode

    1. _client = New DiscordSocketClient()

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