Laden...

VB.Net Autsch-Syntax

Erstellt von Programmierhans vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.022 Views
Programmierhans Themenstarter:in
4.221 Beiträge seit 2005
vor 18 Jahren
VB.Net Autsch-Syntax

Hier mal wieder ein VB.Net Muster welches so richtig weh tut:

C# --> klare Syntax

Control[] contrls2={this.button1,this.button2};
Control[] contrls1=new Control[]{this.button1,this.button2};

VB.Net --> contrls1 geht ja noch.... aber contrls2 tut so richtig weh
da es so aussieht wie wenn new Control() ein Aufruf des Default-Constructors wäre.

Dim contrls1 As Control() = {Me.Button1, Me.Button1}
Dim contrls2 As Control() = New Control() {Me.Button1, Me.Button2}

Gruss
Programmierhans

PS: Eigentlich wollte ich fragen wie die Syntax für Variante contrls2 in VB.Net ist... habs dann aber nach 2 Minuten rumpröbeln wieder rausgefunden, habe mich dann aber ein wenig über die unmögliche Syntax genervt... wollte euch das nicht vorenthalten

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

H
63 Beiträge seit 2005
vor 18 Jahren

Ich finde es eigentlich gar nicht so schlimm, wenn man bedenkt, das in VB einfach nur [] durch () ersetzt wird. Und dann ist es wiederum das Gleiche.....

Warum so einfach, wenn's auch kompliziert geht !

1.271 Beiträge seit 2005
vor 18 Jahren

Aber eins hat VB.NET C# bei Arrays voraus: Die dynamische Größenänderung. ich finde das verschmerzt auch eine für einen C#-Programmierer unverständliche Syntax.
progger

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

402 Beiträge seit 2005
vor 18 Jahren

Original von progger
Aber eins hat VB.NET C# bei Arrays voraus: Die dynamische Größenänderung. ich finde das verschmerzt auch eine für einen C#-Programmierer unverständliche Syntax.
progger

8o Wie das geht in C# nicht. Da steige ich kopflos von Delphi auf C# um und muss feststellen, dass die hälfte nicht mehr machbar ist? Oder nimmt man dann einfach nur eine ArrayList?

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo tomaten!

Oder nimmt man dann einfach nur eine ArrayList?

ja, das kann man z.B. nehmen, oder was ich immer gerne benutze, die "IList".

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

1.985 Beiträge seit 2004
vor 18 Jahren

_Original von tomaten_Oder nimmt man dann einfach nur eine ArrayList?

Hallo tomaten,

jo, eine ArrayList kannst Du da nehmen.

@VB-Syntax: Die Syntax mag ich auch nicht. Ich kann mich nicht an das Klammerlose gewöhnen. Ist aber meine persönliche Einstellung dazu.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

P
939 Beiträge seit 2003
vor 18 Jahren

Arrays in VB sind nicht wirklich dynamisch, oder? Um die Grösse zu ändern, muss man explizit redimensionieren. Man muss eigentlich vorher wissen wie gross das Array werden soll.

ILists und List<T> passen ihre Grösse wirklich dynamisch an und sind einfacher handhabbar. Dafür sind sie im Zugriff wahrscheinlich langsamer.

Ansonsten, VB-Programmierer können sich ja ne ReDim-Funktion nachprogrammieren:

// Main.
static void Main() {

	byte[] bytes = { 0, 1, 2, 3, 4 };

	// Redimensionieren mit Länge 3, Elemente beibehalten.
	byte[] redim = (byte[]) ReDim((Array)bytes, 3, true);
}

// ReDim-Funktion.
private static Array ReDim(Array array, int length, bool preserve) {

	Type elemType = array.GetType().GetElementType();
	Array redimArray = Array.CreateInstance(elemType, length);

	if(preserve) {
		int len = array.Length < length ? array.Length : length;
		Array.Copy(array, redimArray, len);
	}

	return redimArray;
}

Was anderes macht die originale ReDim-Anweisung auch nicht (nehm' ich mal an).

Gruss
Pulpapex

1.549 Beiträge seit 2004
vor 18 Jahren

Zieht doch nicht so über das armen VB.NET her kann ja nichts dafür dass es einen so ungewohnten Syntax hat. =) aber es ist ja wirklich ein hässliches Entlein

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

1.985 Beiträge seit 2004
vor 18 Jahren

Nabend,

jaja, wie war das noch mal? 🙂

PS: Irgendwie kamen wir beim Blödeln auf einen netten Gag für Austin Powers 4 ... Vorschlag für Dr. Evil: "Wir entwickeln eine absolut unfähige Programmiersprache und nennen sie 'Visual Basic .NET'." 😉

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

I
1.739 Beiträge seit 2005
vor 18 Jahren

@Programmierhans
Ärger VB-Programmierer nicht mit Kleinigkeiten in der Syntax. Die armen Menschen müssen erstmal Objektorientierung verinnerlichen(Ich kenne gute Programmierer die bisher ausschliesslich VB verwendet haben und sich über die neuen Möglichkeiten freuen(ist aber wohl 'ne Minderheit)Zahlenvergleich: "Entwickler" und Programmiersprachen, die VB-Programmierer sind in der Überzahl(also pass auf sonst überrennen sie dich einfach...).
In der Tat ist VB.Net in wesentlichen Dingen C# gleichwertig(In der IDE von MS scheint VB.Net manchmal sogar überlegen...). VB.Net ist der Grund warum VB-Programmierer fluchen, Support eingestellt(bzw Kostenpflichtig), man wird gezwungen zu lernen etc.

N
4.644 Beiträge seit 2004
vor 18 Jahren

@ikaros 👍

Sehe ich genauso, kenn auch solche Leute.
Ansonsten ist es IMHO nur noch Geschmackssache ob C# oder VB.NET.

I
1.739 Beiträge seit 2005
vor 18 Jahren

@Noodles: Stimmt
Allerdings gibt es trotzdem Pluspunkte für C#:
Die Verwendung von Pointern(unsafe)(irgendwann endlich obsolet) und was(für mich) schwerer wiegt die Standardisierung. Ich freu mich auch das Generics für VB jetzt zur Verfügung stehen(War in der ursprünglichen Planung nicht enthalten(2.0))

N
4.644 Beiträge seit 2004
vor 18 Jahren

Jep, man muss eben Kompromisse eingehen. Aber das VB.NET "Geflame" hat IMHO keinen wirklichen Standpunkt mehr!

I
1.739 Beiträge seit 2005
vor 18 Jahren

Dem schliesse ich mich an. Ich flame jederzeit gegen VB 2-6(1 war wenigstens innovativ), aber bei VB.Net fehlt die vernünftige Grundlage.

Programmierhans Themenstarter:in
4.221 Beiträge seit 2005
vor 18 Jahren

Original von ikaros
@Programmierhans
Ärger VB-Programmierer nicht mit Kleinigkeiten in der Syntax.

Ich will doch niemanden ärgern 🙂 hab selber ja auch ne Zertifizierung in VB... VB.Net ist besser als VB, aber je nach Einstellung der IDE potenziell auch gefährlicher als C#... ich denke da an Option Explicit Off ... Strict Off ...

Und mir persönlich gefällt C# auch besser als VB.Net (ich wechsle viel hin und her zwischen den Sprachen... je nachdem um was für ein Projekt es sich handelt)...

Aber eigentlich wollte ich nicht schon wieder C# gegen VB.Net ausspielen... denn jeder soll mit dem rumspielen was ihm besser gefällt 🙂

Gruss
Programmierhans

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

N
4.644 Beiträge seit 2004
vor 18 Jahren

Original von Programmierhans
VB.Net ist besser als VB

Kann man das noch vergleichen? Wenn ja, dann sollte man anstatt besser, anders sagen , oder?

P
939 Beiträge seit 2003
vor 18 Jahren

Rein informativ:

Tiobe erstellt schon seit ein paar Jahren einen Index über die Grösse der Community einer Programmiersprache.
http://www.tiobe.com/tpci.htm

Was die .Net-Sprachen angeht, liegt C# da klar vor VB.Net. C# liegt auf Platz 7, VB.Net auf Platz 15.

Auf der anderen Seite gibt es viel mehr VB-Programmierer/Projekte (Platz 6) als auf C#-Seite. Wenn man den Prozentangaben trauen kann, mehr als doppelt so viele.

Und gegen Java, C und C++ (Plätze 1, 2 und 3) ist C# quasi 'ne Außenseiter-Sprache. Sagen wir mal noch (obwohl der Abstand gewaltig ist 😉 ).

N
4.644 Beiträge seit 2004
vor 18 Jahren

Da liegen aber auch Jahre an Release-Candidates dazwischen. 😉
Obwohl man IMHO C/C++ für die normale (zukünftige) Windows Entwicklung vernachlässigen kann.

I
1.739 Beiträge seit 2005
vor 18 Jahren

>aber je nach Einstellung der IDE potenziell auch gefährlicher als C#... ich denke >da an Option Explicit Off ... Strict Off ...
Diese Altlasten hat MSversäumt zu entsorgen(Das hätte schon vor 10 jahren rausgehört(aber man hatte ja zudem noch ein Faible für Variant(da kotze ich ebenso bei JavaScript, sorry für die bildhafte Sprache))
@Noodels: Vergleiche sind immer zulässig..., Unterstützt werden solche Vergleiche durch a: untaugliche Migrationstools und b: VB-Namespaces zur Reaktivierung von (grausigen)Altlasten. A und B sorgen irgendwie dafür, dass VB.Net (zu Unrecht) den schlechten Ruf der Vorgänger übernimmt. Auch das immer noch zulässige "On Error Goto" sorgt nicht gerade für Freude(Ist drin wegen Migrationsfähigkeit).

Programmierhans Themenstarter:in
4.221 Beiträge seit 2005
vor 18 Jahren

@ikaros

me.TextBox1.Text=me.TextBox2.Text + me.TextBox3.Text

Ein VB-Taschenrechner 🙂

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

N
4.644 Beiträge seit 2004
vor 18 Jahren

Original von ikaros
@Noodels: Vergleiche sind immer zulässig..., Unterstützt werden solche Vergleiche durch a: untaugliche Migrationstools und b: VB-Namespaces zur Reaktivierung von (grausigen)Altlasten. A und B sorgen irgendwie dafür, dass VB.Net (zu Unrecht) den schlechten Ruf der Vorgänger übernimmt. Auch das immer noch zulässige "On Error Goto" sorgt nicht gerade für Freude(Ist drin wegen Migrationsfähigkeit).

Ja klar. Aber hätte MS zu den VB'lern sagen sollen, hier habt ihr VB.NET alles is anders und vorallem OO. Dann hätte VB.NET noch schlechter abgeschnitten.

I
1.739 Beiträge seit 2005
vor 18 Jahren

.Text(bei Labels . Caption) als Standardproperty, ja ich weiss...(grummel, hab immer noch ein VB-Projekt an der Backe)

I
1.739 Beiträge seit 2005
vor 18 Jahren

>Ja klar. Aber hätte MS zu den VB'lern sagen sollen, hier habt ihr VB.NET alles is >anders und vorallem OO. Dann hätte VB.NET noch schlechter abgeschnitten.
Das wär zumindest ehrlich von MS gewesen. Ist dir Aufstand entgangen als MS angekündigt hat, dass der Support eingestellt wird? Die Halbheiten zugunsten der alten Welt sehe ich eher als hinderlich. Der VB-Programmierer muss sich sowieso völlig umstellen, die Versuche von MS es schmackhafter zu machen stellen da nach meiner Ansicht nur Fallen dar(es war sicherlich gut gemeint).

N
4.644 Beiträge seit 2004
vor 18 Jahren

Ich muß ehrlich sagen, dass ich nicht alles über die VB Umstellung weiß. Aber fakt ist doch eins, VB 6 ist tot, wer daran festhalten will ok ( ist später mal weniger Konkurrenz in einigen Bereichen ). Aber MS hat wohl bis heute weniger VB Entwickler in den .NET Hype bekommen wie geplant. Das ist zumindest meine Meinung.

I
1.739 Beiträge seit 2005
vor 18 Jahren

Absolut zutreffend.
>ist später mal weniger Konkurrenz in einigen Bereichen
LOL: nennt sich wohl sozialer Darwinismus