C# vs. VB.NET

Despair Blue

Mitglied
Ich programmiere schon seit einer Weile in VB.NET und hab mich jetz mal an C# rangewagt...

Für mich ist der C#-Quellttext unübersichtlicher als das VB Äquivalent. Meine Frage ist nun: "Welche Gründe gibt es C# zu benutzen wenn doch beide Sprachen in die selbe MSIL übersetzt werden und VB.NET ansich übersichtlicher ist. Ich weiß das es viele Leute gibt die von Java und C++ umgestiegen sind und dann natürlich die Sprache mit der vertrauten Syntax lernen...aber wieso sind die meisten der Meinung das C# leistungsfähiger ist?

Ich hoffe die Frage is nich ganz so idiotisch wie sie mir selber vorkommt und ich bedanke mich schon mal im Voraus für jede konstruktive Antwort.

(wisst ihr eigentlich wie hart es is mit Groß- und Kleinschreibung zu schreiben als faule VB.NET progger ^^)
 
Im Grunde ist es unerheblich in welcher Programmiersprache unter .NET programmiert wird.

Bei genauerer Betrachtung ist es so, dass gewisse Dinge mit VB.NET einfacher zu realisieren sind. Auf der anderen Seite ist VB.NET einfach unsauber (Typzuweisungen etc.) und wird daher von vielen Programmierern nicht wirklich ernst genommen.

Prinzipiell bleibt es dir überlassen womit du lieber arbeitest. Ausserdem wurde dieses Thema hier schon des öfteren behandelt.
 
Danke euch!

Ich habe echt gesucht ^^ aber nix gefunden...sry wenn ich das Forum um einen sinnlosen Beitrag erweitert habe ;)

Kann mir wer erklären wie sich das "unsaubere" dann im endeffekt auf das fertige Programm auswirkt? Ich mein ist das dann allgemein für jede VB programierte Anwendung so oder is das abhängig davon inwiefern der Programmierer VB.NET nutzt?
 
[thread=214508]Ich bräuchte mal etwas konstruktive Kritik - Thread[/thread]
[thread=227589]VB.NET vs C# - Thread[/thread]
Kann mir wer erklären wie sich das "unsaubere" dann im endeffekt auf das fertige Programm auswirkt? Ich mein ist das dann allgemein für jede VB programierte Anwendung so oder is das abhängig davon inwiefern der Programmierer VB.NET nutzt?
Bestes Beispiel war die unwartbare (!) Arbeitslosengeld 2 Software des Arbeitsamts.
Ein zustand wie vor 20 Jahren. :eek:
Initiator war glaube ich Peter Harz. ;)

Des weiteren gibt's auch mehr Speicherverbrauch und eine erschwerte Teamarbeit,
da man sich mit dubiosen Konstrukten der anderen Entwickler rumärgern muss.
 
Den MSDN-Artikel kenn ich schon, da ich nehmlich vorbildlich war, hab ich zuerst die MSDN durchsucht, dann das Forum hier (wobei ich ehrlich keinen Thread für den Vergleich beider Sprachen gefunden habe) und dann habe ich erst gepostet ^^

Also wie ich das sehe sind beide Sprachen ungefähr gleichwertig und man sollte die Sprache programieren die einem am besten gefällt und mit der man am besten klar kommt. Und damit gibt es keinen richtigen Grund umzusteigen. Richtig?

PS: hab übrigens gleich nach "wurschtelcode" gesucht und es gefunden, war noch am lesen wo ihr geantwortet habt ^^
wie ich sagte...bin nen vorbildlicher Forumsnutzer ^^

danke für eure Antworten und die vielen Links...ich glaub ich weiß nun das ich mir nich die Mühe machen muss umzusteigen ;)
____________________________________________________________________________

jetz stimmts aber ^^
 
Wenn mit option strict und option explicit programmiert wird, spielt es so ziemlich keine Rolle, ob du in VB oder in C# programmierst... und doch sind da Unterschiede:

  • Anstelle des String Vergleichsoperators wird eine Microsoft.VisualBasic Funktion verwendet. (Unter anderem um Compare Text/Binary zu unterstützen)
  • Sämtliche VB.NET Funktionen (also mit Rückgabewert) generieren eine Variable, die den selben Namen/Typ wie die Funktion hat.
  • In VB.NET kann benannte index Eigenschaften (named indexers) deklarieren.
Code:
Public Property NamedIndex(index as Integer) as String
	'... Get/Set
End Property
C# kann mit diesen Mitgliedern zwar umgehen (sie konsumieren), aber nicht selbst definieren.
  • Umgekehrt können sich zwei Mitglieder in C# nur in der Schreibweise (gross/klein) unterscheiden. Dort stösst VB dann an seine Grenzen.
  • VB.NET kann von einem Interface "geerbte" Methoden umbenennen, C# nicht.

Ich bin etwa in der selben Situation wie du. Ich habe auch mit VB.NET angefangen und bin dann "zufällig" auf C# gestossen. Was ich an C# nicht ausstehen kann ist die Vererbungssyntax:
C#:
interface IOne 
{
	void DoOne();
}

class Two : System.Object, IOne
{

}
Der Unterschied zwischen Interfaces und Klassen ist nicht so deutlich wie in VB. Selbstverständlich ist das rein subjektiv, den Interfaces sind leicht am I zu erkennen.
Ebenfalls ein Nachteil von VB ist, das alle Methoden per default überschrieben werden können, also "virtual" sind, denn virtuelle Funktionen benötigen mehr Zeit um aufgerufen zu werden. Und natürlich ist man als Programmierer zu faul um überall "NotOverridable" hinzuschreiben...

Sollte ich mal wieder ein neues Projekt anfangen, werde ich das in C# tun. ( C++/CLI sieht auch interessant aus ;-) )
 

Neue Beiträge

Zurück