Frage

Sicherlich gibt es einen Unterschied in der allgemeinen Syntax, aber welche anderen entscheidenden Unterschiede gibt es?Es gibt manche Unterschiede, oder?

War es hilfreich?

Lösung

Die verlinkten Vergleiche sind sehr ausführlich, aber was die Hauptunterschiede betrifft, möchte ich Folgendes anmerken:

  • C# verfügt über anonyme MethodenVB hat diese jetzt auch
  • C# hat das Schlüsselwort yield (Iteratorblöcke)VB11 hat dies hinzugefügt
  • VB unterstützt implizite späte Bindung (C# verfügt jetzt über eine explizite späte Bindung über das dynamische Schlüsselwort)
  • VB unterstützt XML-Literale
  • Bei VB wird die Groß-/Kleinschreibung nicht beachtet
  • Weitere sofort einsatzbereite Codefragmente für VB
  • Weitere sofort einsatzbereite Refactoring-Tools für C#Visual Studio 2015 bietet jetzt dieselben Refactoring-Tools für VB und C#.

Im Allgemeinen sind die Dinge, auf die MS sich konzentriert, unterschiedlich, da sich die beiden Sprachen an sehr unterschiedliche Zielgruppen richten. Dieser Blogbeitrag hat eine gute Zusammenfassung der Zielgruppen.Es ist wahrscheinlich eine gute Idee, zu bestimmen, zu welcher Zielgruppe Sie gehören, da dadurch bestimmt wird, welche Art von Tools Sie von Microsoft erhalten.

Andere Tipps

Seit der Veröffentlichung von .Net 2.0 wurde diesem Thema viel Aufmerksamkeit geschenkt.Sieh dir das an Wikipedia Artikel für eine lesbare Zusammenfassung.

Dies kann als Syntax angesehen werden, bei VB.NET ist dies jedoch der Fall Insensibel, während in C# die Groß-/Kleinschreibung gilt empfindlich.

Das ist eine sehr umfassende Referenz.

Da ich davon ausgehe, dass Sie googeln können, glaube ich nicht, dass Sie nach einem Link zu weiteren Websites suchen.

Meine Antwort:Wählen Sie basierend auf der Geschichte Ihrer Entwickler.C# ähnelt eher JAVA und wahrscheinlich C++.VB.NET war für VB-Programmierer einfacher, aber ich denke, das ist kein wirkliches Problem mehr, da es keine neuen .NET-Programmierer gibt, die vom alten VB abwandern.

Meiner Meinung nach ist VB produktiver als C#, es scheint, dass es in Bezug auf Produktivitätstools (wie Intelisense) immer die Nase vorn hat, und ich würde jedem, der danach fragt, VB gegenüber C# empfehlen.Natürlich wird jemand, der weiß, dass er C# bevorzugt, nicht fragen, und C# ist wahrscheinlich die richtige Wahl für ihn.

Obwohl der Syntax-Zucker in C#3 die Messlatte wirklich nach vorne gelegt hat, muss ich sagen, dass einige der Linq-to-XML-Sachen in VB.Net recht nett erscheinen und den Umgang mit komplexem, tief verschachteltem XML etwas erträglicher machen.Nur ein bisschen.

Ein eklatanter Unterschied besteht darin, wie sie mit Erweiterungsmethoden umgehen (Vb.Net erlaubt tatsächlich etwas, was C# nicht erlaubt – die Übergabe des Typs, für den die Erweiterungsmethode definiert wird, als ref): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

Abgesehen von der Syntax nicht mehr so ​​viel.Beide kompilieren mit genau derselben IL, sodass Sie etwas als VB kompilieren und in C# widerspiegeln können.

Die meisten offensichtlichen Unterschiede sind syntaktischer Natur.Beispielsweise scheint VB dynamische Typen zu unterstützen, aber in Wirklichkeit sind sie genauso statisch wie die von C# – der VB-Compiler erkennt sie.

Visual Studio verhält sich mit VB anders als mit C# – es verbirgt viele Funktionen, fügt aber Hintergrundkompilierung (ideal für kleine Projekte, Ressourcenbeanspruchung für große Projekte) und bessere Snippet-Unterstützung hinzu.

Mit immer mehr Compiler-„Magie“ in C#3 ist VB.Net wirklich ins Hintertreffen geraten.Das Einzige, was VB jetzt hat, was C# nicht hat, ist das handles Schlüsselwort - und das ist von fraglichem Nutzen.

@Tom – das ist wirklich nützlich, aber etwas veraltet – VB.Net unterstützt jetzt auch XML-Dokumente mit '''

@Luke - VB.Net verfügt immer noch über keine Anon-Methoden, unterstützt jetzt aber Lambdas.

Der größte Unterschied besteht meiner Meinung nach in der Möglichkeit, unsicheren Code in C# zu schreiben.

Obwohl VB.NET die Ausnahmebehandlung vom Typ try...catch unterstützt, verfügt es dennoch über etwas Ähnliches wie ON ERROR in VB6.ON ERROR kann ernsthaft missbraucht werden, und in den allermeisten Fällen ist try...catch weitaus besser;ON ERROR kann jedoch nützlich sein, wenn COM-Timeout-Vorgänge verarbeitet werden, bei denen der Fehler abgefangen und dekodiert werden kann und der letzte „Erneut versuchen“ eine einfache Zeile ist.Sie können dasselbe mit try...catch tun, aber der Code ist viel chaotischer.

Dieses Thema wird bei Wikipedia und Harding kurz beschrieben.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NEThttp://www.harding.edu/fmccown/vbnet_csharp_comparison.html

Gehen Sie einfach durch und machen Sie sich Notizen dazu.

Wenn es nach IL kommt, sind es nur noch Bruchstücke.Diese Groß- und Kleinschreibung ist nur ein Precompiler-Durchgang.Der allgemeine Konsens ist jedoch, dass vb ausführlicher ist.Wenn Sie c# schreiben können, sparen Sie doch Ihre Augen und Hände und schreiben Sie eine kleinere Menge Code, um dasselbe zu erreichen.

Ein eklatanter Unterschied besteht darin, wie sie mit Erweiterungsmethoden umgehen (Vb.Net erlaubt tatsächlich etwas, was C# nicht erlaubt – die Übergabe des Typs, für den die Erweiterungsmethode definiert wird, als ref): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

Scott Hanselman habe kürzlich einen interessanten Artikel geschrieben, der var und Dim gegenüberstellt: Zurück zum Wesentlichen:var != Dim

Ja, VB.NET hat die meisten VB6-Probleme behoben und daraus eine richtige OOP-Sprache gemacht – d. h.Ähnliche Fähigkeiten wie C#.Obwohl ich eher C# bevorzuge, finde ich das alte VB ON ERROR-Konstrukt nützlich für den Umgang mit COM-Interop-Timeouts.Etwas, das man mit Bedacht einsetzen sollte – ON ERROR kann leicht missbraucht werden!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top