Größte Unterschiede zwischen vb.NET und C#?

  • C#

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

    Größte Unterschiede zwischen vb.NET und C#?

    Hi,
    da ich einen Schülerjob gefunden habe, wo überwiegend in C# gearbeitet wird, wollte ich mal fragen, was die größten Unterschiede zwischen vb und C# sind.
    Sind ja, wie ich schon sehr oft gehört habe, relativ ähnlich. Ich will jetzt nicht wissen, wo man Bücher für etwas bekommt, sondern wirklich nur einfache Unterschiede, damit mann C# "lesen" kann.

    Danke erstmal,
    Michdi

    *Topic verschoben*
    Die beste maschinelle Übersetzung der Welt - DeepL Übersetzer
    Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Es sind halt einige Schlüsselwörter, die in C# anders sind als in VB.NET. Zum Beispiel MustOverride, heißt das glaub ich in VB.NET, ist in C# halt abstract oder Overridable virtual etc.
    Ansonsten muss man sich halt einige schlechte Angewohnheiten aus VB.NET abgewöhnen, wie etwa das Weglassen von Klammern bei Methoden, das Verwenden von Option Strict Off (sollte eig. klar sein) und so Zeugs. C# ist halt auch case-sensitive. Die Syntax unterscheidet sich bei manchen Sachen etwas, wie etwa Lambda-Ausdrücken oder Typparametern. Konstruktoren werden halt über den Klassennamen angegeben statt Sub New und solche Dinge. Also es ist an sich nicht schwer, C# zu verstehen. Manches muss man sich halt ersuchen und findet das dann in der Dokumentation. Voraussetzung ist halt, dass man das .NET-Framework und VB.NET wirklich beherrscht.
    Edit: Ach ja, C# kann noch unsafe. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hi
    mir würde außerdem einfallen, dass die Syntax in C# anders ist und C# ein paar weitere Features hat:
    Statt der
    <bla>
    End <bla>
    -Syntax verwendet C# geschweifte Klammern. Außerdem werden Statements nicht über Leerzeilen abgeschlossen, sondern über ein Semikolon (';')

    Außerdem werden in C# durch unsafe Zeigeroperationen verfügbar gemacht und durch unchecked die Überlaufprüfung bei der Ganzzahlarithmetik weggelassen (z.B. int.MaxValue + 1 gibt int.MinValue statt einer Überlaufausnahme, wenn innerhalb eines unchecked-Kontexts ausgeführt).
    VB.Net bietet den My-Namespace. Diesen gibt es in C# nicht. Ebenso kann man in C# die vorgefertigte Instanz der Forms nicht durch den Namen ansprechen (Form1.Show() geht z.B. nicht). Außerdem gibt es standardmäßig den Microsoft.VisualBasic-Namensraum nicht (man müsste ihn importieren, aber das macht man eher in den selteneren Fällen).

    Option Strict Off gibt es in C# ebenfalls nicht. Stattdessen kann auf dynamic zurückgegriffen werden, aber ich habe es bisher noch nie nötig gehabt.

    Neben diesen Dingen gibt es in C# halt noch ein paar andere Handhabungen, wie bspw. das fehlende Iterator-Schlüsselwort bei Iteratoren und 'yield return' statt 'Yield'.

    Alles in Allem schon ein wenig Umstellung, wenn man wechselt, aber nach ein paar Tagen war das bei mir routiniert. Elegantes Programmieren fiel mir in C# übrigens weit leichter, als in VB, wo es so viele Hindernisse gibt, die einem in den Weg gelegt werden (eben Option Strict, das mit den Forms, My-Namensraum... Eigentlich alles genannte, was man halt doch öfters braucht).

    Es gibt in C# auch noch ein paar Dinge, die man eigentlich nicht verwendet, die aber unterstützt werden (z.B. __arglist).

    Viele Grüße
    ~blaze~
    Dazu kommt, daß C# bei Microsoft Priorität hat. VB ist quasi der kleine Bruder, der mitgeschleift wird.

    Wenn mir das lesen von C# (geschweifte Klammern) nicht so schwer fallen würde, wäre ich schon umgestiegen.
    Wie gesagt, das ist einfach nur Gewöhnungssache. Probier dich mal mit einem kleinen Projekt daran. Das wird dir innerhalb weniger Stunden bereits leichter fallen, als am Anfang und nach ein paar Tagen hast du dich daran gewöhnt. Ich finde das Programmieren in VB.Net inzwischen sogar eher unangenehm.

    Viele Grüße
    ~blaze~
    Hi,
    also ich bin von VB.net auch auf c# umgestiegen. Um zu üben hab ich mir vb.net projekte die ich geschrieben hatte hergenommen und sie in c# neu geschrieben. Ich finde die syntax fon c# ist genauso zu verstehen wie die syntax von vb.net. Probleme habe ich eigentlich bei lambda ausdrücken und bei speziellen sachen...
    "Hier könnte Ihre Werbung stehen..."
    Ich habe auch schon überlegt umzusteigen, aber ich kann nicht mit den geschweiften Klammern.
    Ich schaffs nicht mich damit anzufreunden.

    @MichaHo
    Lustig, die Syntax für Lambda finde ich in C# wiederum übersichtlicher.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    ~blaze~ schrieb:

    Wie gesagt, das ist einfach nur Gewöhnungssache. ...

    Ne, da kann ich mich nicht dran gewöhnen. Die geschweiften Klammern wirken "unruhig" auf mich, unabhängig von der Sprache, da kann ich mich schnell nicht mehr drauf konzentieren. :(
    VB wirkt auf mich wesentlich "ruhiger" und aufgeräumter.
    Das ging mir anfangs auch so. Habe mich dann aber dran gewöhnt und finde mittlerweile VB.NET hässlich. :D

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich glaube, dass man sich kaum an etwas derartiges nicht gewöhnen kann. Du hast VB.Net ja auch gelernt. Es ist halt noch eher an einer gesprochenen Sprache, bzw. es hat mehr Intuitivität, was die Benutzung angeht.
    Wie gesagt, gib' dir etwas Zeit damit. Es schadet auf jeden Fall nicht, es zu lernen. Wenn du vorhast, weitere Sprachen, wie Java oder C# zu lernen, kommst du eh nicht recht drumherum.

    Viele Grüße
    ~blaze~
    Also bei mir hat sich bis jezt 0.0 Gewöhnungseffeckt eingellt, obwohl ich schon so einige hundert Stunden auf Geschweifte Klammern (Javascript und auch C#) geglotzt habe.
    Aber das macht ja (fast) nichts, es gibt ja VB. :thumbsup:
    Wenn es sein müsste, könnte ich auch C# programieren, aber warum sollte ich mein Hirn unnötig stressen !?
    Ansehen ist was anderes, als es selbst zu tun.

    "Unnötig" ist debatierbar ;) Es bringt meiner Einschätzung nach nur Vorteile, wenn man die Zeit dazu hat. Und außerdem ist neues Lernen und sich neuen Situationen und Problemen zu stellen eine Herausforderung, an der nicht nur das Wissen, sondern auch die Aneignungsfähigkeit von Wissen wächst. D.h. wenn du solche Dinge öfter machst, gewinnst du auf lange Sicht vmtl. auch noch die Fähigkeit, dir Dinge schneller beizubringen oder Probleme schneller zu lösen, die eine gewisse strukturelle Ähnlichkeit zu den Problemen aufweisen, die du bereits bewältigt hast.

    Viele Grüße
    ~blaze~
    Heyho,
    ich bin auch vor einer Weile auf C# umgestiegen.
    Gründe für den Umstieg waren unter anderen wegen der Syntax (erinnert mich halt stark an PHP was ich sowieso Programmiere)
    und weil es einfach kein Option Strict Off gibt.
    Jetzt fehlt mir nur noch das ich endlich mal anfange mit WPF aber ich habe für mich
    noch keinen Vorteil von WPF gefunden ( Falls jemand das was konkretes hat bin ich gerne bereit
    dies meinem Wissen hinzuzufügen)
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

    xChRoNiKx schrieb:


    Jetzt fehlt mir nur noch das ich endlich mal anfange mit WPF aber ich habe für mich
    noch keinen Vorteil von WPF gefunden ( Falls jemand das was konkretes hat bin ich gerne bereit
    dies meinem Wissen hinzuzufügen)


    ​Einfach, Bindingsystem, Hardwarebeschleunigung, möglichkeit der Umsetzung diverser Pattern wie MVVM, besser Testbar (Unittests) und MODERNER.
    ​Windows Desktop = WPF, UWP = WPF, Windows Phone App = UWP = WPF

    ​Das ganze System der UI ist ein anderes. Viel flexibler und ICH kann bis ins Detail bestimmen wie es aussehen soll.
    ​Unter WinForm eine Applikation Berrierefrei zu machen würde ICH nie schaffen. Unter WPF ist das kein Thema.

    Grüße
    ​Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    WPF bzw. XAML + MVVM ist die Zukunft von UI unter .NET. Xamarin und MS sind gerade dran XAMLStandard 1.0 zu finalisieren, was der Standard für Cross-Plattform-GUI werden wird. Dies bedeutet, man schreibt die GUI einmal, und sie läuft quasi auf allen Plattformen. Auf Win Desktop mit WPF, auf mobilen Geräten und UWP entweder nativ oder mit Xamarin.Forms, auf Mac und Linux mithilfe von GTK# (mein letzter Stand).

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