vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Hansi99
Datum: 07.03.11 15:15

Hallo,

kann mir einer die Gemeinsammkeiten und Unterschiede der beiden Programmiersprachen auflisten?

Wie z.B. ob es bei VB auch Pointer gibt oder ob beide Objektorientiert sind.



Gruß

Hansi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: mikeb69
Datum: 07.03.11 15:19

Hallo Hansi99,

c ist nicht objektorientiert.

C# oder C++ schon.

Soweit ich weiß kennst VB (VB.NET) keine Pointer.

Gruss

mikeb69
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Manfred X
Datum: 07.03.11 15:37

Hallo!

Deine Frage kann man - so gestellt - kaum sinnvoll beantworten.
Erläutere doch, für welchen Anwendungszweck Du eine Sprache suchst?

Zunächst wäre zu klären, ob das Net-Framework für Dich geeignet ist.

VB.Net ist relativ einfacher zu handhaben, man macht weniger
Fehler und kommt schneller zurecht.

Net-C++ bietet dafür mehr Möglichkeiten, erfordert aber auch
wesentlich mehr Erfahrung.

Wofür z.B. benötigst Du Pointer?

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: ModeratorDaveS (Moderator)
Datum: 07.03.11 15:39

Vb.Net kennt keine Pointer, C# schon, ist aber im höchsten Grad irrelevant. Wenn du keine der zwei Sprachen richtig kennst, welchen Sinn hat eigentlich eine solche Frage?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Hansi99
Datum: 07.03.11 15:52

Es geht darum die 2 Sprachen zu vergleichen und die Gemeinsammkeiten und Unterschiede zu finden.
Mir ist nix anderes ausser Pointer eingefallen, darum die frage dort.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Manfred X
Datum: 07.03.11 15:57

Hallo!

Dein Interesse ist also rein akademisch?
Dann studiere doch einfach die einführenden Fachbücher zu den Sprachen.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Hansi99
Datum: 07.03.11 16:03

Hi,

ja genau!
Hatte gehofft das mir evtl hier einer dabei behilflich sein kann.

Gru0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Manfred X
Datum: 07.03.11 16:12

Hallo!

Prof. Google nutzen, z.B.:

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Hansi99
Datum: 07.03.11 16:16

Danke dir Manfred!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: mkolb
Datum: 09.03.11 22:22

sehr interessanter Link. Habe ich mir auch gleich mal verlinkt

mein aktuelles .net-Projekt:
http://www.fiman.de
freue mich über Test-Informationen.

Screenshots gibt es hier: http://www.fiman.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Micke
Datum: 10.03.11 17:29

hi hansi,

falls du die überlegst in welche von beiden sprachen du dich einarbeiten solltest -
nimm vb.net.

ich darf das schreiben, weil ich primär mit c# unterwegs bin.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Manfred X
Datum: 10.03.11 17:54

Hallo!

Ohne genaue Begründung darfst Du gar nix schreiben!

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Gemeinsammkeiten und Unterschiede zwischen VB.net und c 
Autor: Micke
Datum: 11.03.11 08:53



ich finde Microsoft bevorzugt seinen VB Schützling einen Tick gegenüber c# bezüglich des Funktionsumfangs - FW wie auch im Studio selbst.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 09:49

Hallo!

Seit FW 4.0 ist es fast eine reine "Geschmacksfrage",
ob man VB.Net oder C# bevorzugt.

Der Link, dem ich oben gepostet habe, bietet einen direkten
Code-Vergleich. Daran kann man sich bei der Entscheidung
orientieren.

Für Programmierer, die von VB6 oder C++ kommen, ist es
auch eine Frage der Gewohnheit im Umgang mit der jeweiligen
Sprach-Syntax.

Ob C# in manchen Kreisen immer noch ein besseres "Image" hat
als VB.Net, kann ich nicht beurteilen - ist aber durchaus möglich.

Für Neueinsteiger bietet VB.Net ein wenig mehr Unterstützung und
Komfort.

In der MSDN gibt es nach wie vor Abschnitte, die nur C#-, aber
kein VB.Net-Beispiel bieten.

Es gibt im Internet Übersetzungsseiten, mit denen man in den
meisten Fällen problemlos zwischen den Sprach-Codes wechseln kann.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Micke
Datum: 11.03.11 10:42

"In der MSDN gibt es nach wie vor Abschnitte, die nur C#-, aber
kein VB.Net-Beispiel bieten."

echt ? also nicht ironisch gemeint, aber was leiht man sich denn in vbProjekten aus c# aus ?

in c# definitiv den Microsoft.VisualBasic.FileIO namespace

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: ModeratorFZelle (Moderator)
Datum: 11.03.11 11:29

Sorry, das ist BS.

Wer sich diese Namespaces und My und Co ausleihen will, hat sich einfach nicht mit c# beschäftigt.
Und Sachen wie Defaultinstanzen und CO sind eher ein Fluch als irgendeine Bevorzugung.

Es ist eher so, das erst jetzt langsam VB auf den Funktionsumfang von C# aufholt, aber Sachen wie yield und einige andere Sachen hat VB immer noch nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 11:29

Hallo!

Nein, ich mache in solchen Dingen doch keine Scherze.
Manchmal sind einfach keine VB.Net-Beispiele vorhanden.
Z.B. dieses einfache Thema:
Gewusst wie: Wiedergeben von Medien mit einer VideoDrawing
http://msdn.microsoft.com/de-de/library/aa969812.aspx

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Micke
Datum: 11.03.11 12:23

hi Fzelle,

mit dem Defaultinstanzen Term hab ich gerechnet, wenngleich ich annahm den Punkt könnte man überspringen.

Mir kamen eher Sachen wie in deinem post
vb@rchiv
oder bspw. die zusätzlichen Überladungen von FileSystem.DeleteFile in den Sinn - da ich den namespace erwähnt hab.

Den Einwand "hat sich einfach nicht mit c# beschäftigt" kann ich da nicht recht deuten - du hättest es lieber selbst gebaut oder wie meinen ?

Micke

Beitrag wurde zuletzt am 11.03.11 um 12:29:32 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: ModeratorFZelle (Moderator)
Datum: 11.03.11 13:10

Ich leide nicht unter NIH Syndrom, also muss ich solche Sachen nicht unbedingt selber bauen.

Die habe ich 2002, als VB.NET noch keinen My Namespace und die anderen Vereinfachungen/Verschlimmbesserungen hatte schon lange Fertig gehabt oder von anderen benutzt.

Aber du redest hier über Biblioteken, nicht über die Sprache.
Man konnte z.b. bis einschliesslich VS2005 auch per J# auf Zipdateien zugreifen, das machte doch die Sprache J# nicht besser.

95% aller Biblioteken sind in C# geschrieben, macht das jetzt VB.NET so schlecht?

Also halte Biblioteken und die Sprache auseinander.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 14:05

Hallo,

ich möchte mich auch mal kurz an der Diskussion hier beteiligen.

Ich hab früher auch nur VB6 programmiert, hab dann aber C gelernt und programmiere jetzt mit Java (worauf ja C# basiert). Und seitdem bin ich froh, keine VB-Syntax mehr verwenden zu müssen. ;)

Ich denke, VB.Net ist als Sprache für die VB6-Umsteiger gedacht, die keine Lust/Zeit haben, eine neue Sprachsyntax (C#) zu lernen (es gibt ja sogar diese ganzen alten nicht-objektorientierten VB6-Funktionen noch in VB.Net im Microsoft.VisualBasic-Namespace, oder auch die Standardinstanzen der Form, welche in einer OOP-Sprache nicht viel Sinn machen); ich sehe ansonsten nicht viel Sinn darin, neu mit VB.Net anzufangen. Wenn man eine neue Programmiersprache lernen will, sollte man meiner Meinung nach besser gleich mit C# anfangen, nicht mit VB.Net.

Ich hab mich jetzt noch nicht so eingehend mit der VB.Net-Syntax befasst, aber ich finde, dass VB und VB.Net im Vergleich zu C-Sprachen (auch C# und Java) sehr umständlich sind.
Ein paar Beispiele:

1. Ganzzahl-Division.
Bei einer Gleitkommadivision verhält sich VB.Net wie jede andere Programmiersprache:
Dim x as Double = 5, y as Double = 3
Dim ergebnis as Double = x / y
Ergebnis hat dann den Wert 1.66..., wie man es erwarten würde. Will man hingegen eine Ganzzahl-Division durchführen:
Dim x As Integer = 5, y As Integer = 3
Dim ergebnis As Integer = x / y
, so würde man als Programmierer selbstverständlich erwarten, dass das Ergebnis "1" ist, denn 5 / 3 = 1 Rest 2 (eine Ganzzahl-Division macht man häufig in Verbindung mit dem Modulus). Leider überascht einen VB hier, denn das Ergebnis ist unerwarteterweise 2 statt 1. VB/VB.Net macht hier gleich 2 Sachen, die man nicht erwarten würde: 1. wandelt es vor der Division die beiden zahlen in Gleitkommazahlen um und fürht dann eine Gleitkommadvision statt einer Ganzzahldivision durch. 2. rundet es beim Konvertieren von Gleitkomma- nach Ganzzahl, was vielleicht für Programmieranfänger hilfreich ist, für andere aber nicht unbedingt.
Beispielsweise begegnet das mir, wenn ich eine Matrix habe (z.B. aus 3x3 Feldern) und den (x, y)-Index in einer einzigen Zahl speichern will. Dies mach man normalerweise mit (idx = y * Spaltenanzahl + x), in diesem Fall (idx = y * 3 + x). Will man nun x und y aus idx wieder extrahieren, macht man in C(#)/Java usw.:
int x = idx % 3;
int y = idx / 3;
, was einwandfrei klappt, nur mit VB.Net tappt man hier in die Falle.

2. For-Schleifen
in VB.Net ist es ein bisschen umständlich, in einer For-Schleife z.B. ein Array zu durchlaufen. Man müste dies ja so: machen:
        For i As Integer = 0 To TmpArray.Length - 1
            '...
        Next
also man muss immer 1 abziehen, da bei einem Array mit der Länge 5 die Indizes von 0-4 gehen. Unter C#/Java schreibt man einfach
for (int i = 0; i < TmpArray.Length; i++)
{
     // ...
}
man muss also nicht mehr auf das -1 achten.

3. Klammern
In C#/Java gibt es runde Klammern () für Funktionsaufrufe, eckige Klammern [] um einen Arraytyp zu kennzeichnen bzw. um auf ein Arrayelement zuzugreifen und spitze Klammern <> für die generischen Elemente. In VB.Net dagegen werden überall runde Klammern () verwendet, was einige Sachen auch umständlicher macht. z.B. wenn man ein neues int-Array mit 5 Elementen anlegen will, müsste man unter VB.Net dies so machen (zumindest ist mir noch kein anderer Weg bekannt):
Dim TmpArray() As Integer = New Integer(4) {}
also man muss hinten dran noch geschweifte Klammern verwenden, da VB.Net die (4) sonst als Argument für den Konstruktor der Klasse Integer interpretieren würde. Nebenbei verwendet VB.Net hier auch noch die Pascal-Syntax von VB6, sodass es mit new Integer (4) {} kein Array mit 4, sondern mit 5 Elementen anlegt. Um ein Array mit 0 Elementen anzulegen, muss man also "New Integer(-1) {}" verwenden.

4. Behandlung von Überläufen.
VB und VB.Net lösen standardmäßig immer eine Überlauf-Ausnahme aus, wenn eben ein Überlauf auftritt. Dies ist jedoch nicht in allen Fällen so erwünscht (möglicherweise kann man das auch abschalten, weiß aber leider nicht, wie). Beispielsweise wenn man eine Long-Zahl hat (also 64-Bit mit Vorzeichen), die einen Wert zwischen 0 und 2^32 hat, und man diese dann in Integer (32-Bit mit Vorzeichen) konvertieren, gibt es bei Werte über 2^31 einen Überlauffehler. Andere Programmiersprachen hingegen schneiden einfach den vorderen Teil ab, was man als Programmierer eignltich häufiger braucht. Z.B. man hat eine IP-Adresse (IPv4) umgewandelt in eine 4-Byte-Zahl zwischen 0 und 2^32. Wenn man diese nun in eine 32-Bit-Ganzzahl mit Vorzeichen konvertieren will, würde VB.Net (ab 2^31) dort einen Überlauf auslösen, anstatt den Wert einfach zu übernehmen, und dann eben für Werte ab 2^31 ein negatives Vorzeichen zu verwenden.

Ich persönlich finde daher VB/VB.Net viel umständlicher als die C-artigen Sprachen.

Beitrag wurde zuletzt am 11.03.11 um 14:19:20 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Micke
Datum: 11.03.11 14:24

stimmt.
danke fürs ordnen der Gedanken, nicht zuletzt durch die ausführlicherere Antwort.

gruß

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 14:30

Hallo!

Auch in VB.Net gibt es einen Ganzzahl-Divisionsoperator.

In VB.Net gibt es GetUpperbound für die Obergrenze einer Arraydimension.

Schade, dass die VB-Entwickler beim Auslösen von Ausnahmen Deine
Programmier-Gewohnheiten nicht beachtet haben.
Ich finde es OK, wenn ein Variablen-Überlauf eine Ausnahme auslöst, statt
eine Vorzeichenumkehr durchzuführen.

Das mit den Klammern ist bestimmt eine schlimme Sache ....
ich werde darüber nachdenken.
Dim TmpArray(4) As Integer

MfG
Manfred

Beitrag wurde zuletzt am 11.03.11 um 14:34:24 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 14:43

Hallo,

du hast Recht, für Ganzzahl-Divisionen muss man den Backslash verwenden (was ich aber auch ein bisschen merkwürdig finde .

Mir ist grade noch was eingefallen: Rechnen mit chars.
in VB.Net kann man anscheinend mit Chars nicht rechnen, zumindest hab ich dafür noch keinen Weg gefunden. In C#/Java funktionieren Sachen wie
//Java:
String str = "abc";
char c = (char) (str.charAt(0) + 10);
// C#:
string str = "abc";
char c = (char) (str[0] + 10);
, dann stellt c den Character 'k' dar, also 'a' + 10 (der Cast nach char ist erforderlich, da die Summe den Datentyp int hat). Wenn ich hingegen unter Vb.Net versuche
Dim str As String = "abc"
Dim c as Char = str(0) + CType(10, Char)
, zeigt er an, man solle Microsoft.VisualBasic.AscW() verwenden, um das Zeichen in eine Zahl zu konvertieren, was ich auch ein wenig umständlich finde. (bei CType(str(0) + 10, Char) zeigt er an, der +-Operator sei für Chars nicht definiert)

Umgekehrt funktioniert
Dim TmpZeichen As Char = 49
auch nicht, hier solle man die ChrW()-Funktion verwenden.

Und wenn man in VB.Net einen Char angeben will, muss man die Schreibweise "k"c verwenden anstatt 'k', da die Hochkommas ja schon für Kommentare verwendet werden.

Beitrag wurde zuletzt am 11.03.11 um 14:51:07 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 14:50

Hallo!

Der entscheidende Punkt bei modernen Programmiersprachen ist
meines Erachtens die Typsicherheit, d.h. Datentypen müssen explizit
konvertiert werden. Ich finde, das ist ein wichtiger Fortschritt,
der Fehler enorm reduziert.

Deine Gewohnheiten stammen aus einer Zeit, wo in Programmiersprachen
eine präzise Datentyp-Überwachung nicht üblich war (Byteschiebereien).

Dass VB.Net immer noch OPTION STRICT OFF bietet und späte Bindung
zuläßt, ist einer Übergangszeit geschuldet und wird irgendwann verschwinden.

MfG
Manfred

Beitrag wurde zuletzt am 11.03.11 um 14:52:16 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 14:53

Hallo,

wie meinst du das denn? Grade in einer Sprache wie Java (und vor allem C, ich denke aber auch C#) ist eine explizite Typdeklaration zwingend erforderlich. Dort gibt es keinen Variant-Datentyp wie in VB6, der unterschiedliche Typen annehmen kann, und wenn eine Variable nicht deklariert wurde, gibt es einen Compilerfehler.

Das ist eben auch bei VB.Net meiner Meinung nach ein Kritikpunkt, dass späte Deklarationen noch möglich sind, oder dass VB.Net automatisch Typkonvertierungen vornommt. Beispiel:
Dim i as Integer = "13"
Anstatt einen Fehler anzuzeigen, dass ein Objekt vom Typ String nicht in eine Zahl konvertiert werden kann, wendet es hier automatisch Integer.Parse() an. Wie du bereits sagtest, lässt sich das aber mit Option Strict On unterbinden. Bei Java und C# dagegen geht so eine Zeile von Haus aus nicht.

Das Rechnen mit Chars hat damit nichts zu tun, denn ein char ist ja auch eine ganz normale Zahl (16-Bit ohne Vorzeichen), die aber beim Ausgeben in ein Zeichen umgewandelt wird. Das ist eher vergleichbar damit dass VB.Net immer Überlauf-Ausnahmen wirft, was Java und C# standardmäßig nicht machen.

Beitrag wurde zuletzt am 11.03.11 um 15:04:23 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 15:10

Hallo!

Du bewahrst zwei Indizes in einer Variable auf. Warum eigentlich?

Du möchtest eine Vorzeichenumkehr bei Ganzzahl-Überlauf, d.h.
der Wert(verlust) ist Dir unwichtig, auf die Byte-Verschiebung kommt es an.

Du betrachtest die Zeichen-Variable "Char" als Zahl. Sie
enthält aber ein Unicode-Zeichen. An den Zahlenwert kommt man deshalb
erst durch Konvertierung.

Deine Gedanken, konsequent zu ende gedacht, ist alles nur eine Folge
von Bytes.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: ModeratorDaveS (Moderator)
Datum: 11.03.11 15:13

Naja, eigentlich moderne Sprache gibt es mit und ohne Typsicherheit, oder sogar irgendwo dazwischen wie Python. Und .Net hat gerade dynamic Objects eingefügt um wegzukommen von absoluter Typsicherheit (man sollte zwischen Typsicherheit und statischer bzw dynamischer Typiserung unterscheiden).

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 15:20

Manfred X schrieb:
Zitat:

Hallo!

Du bewahrst zwei Indizes in einer Variable auf. Warum
eigentlich?
Wieso denn nicht? Wenn man nun mal einen mehrdimensionalen Index in einer Zahl speichern will, wie wollte man es denn sonst machen?
Zitat:


Du möchtest eine Vorzeichenumkehr bei Ganzzahl-Überlauf, d.h.
der Wert(verlust) ist Dir unwichtig, auf die
Byte-Verschiebung kommt es an.
Ja, denn is ist ja Aufgabe des Programmierers, sich bewusst zu sein, was man da grade macht. Klar, für Einsteiger, die noch nicht so viel davon verstehen, ist es hilfreich, wenn VB.Net einem da unter die Arme greift und einen Überlauf auslöst, aber normalerweise sollte man das schon selbst wissen, ob da ein Überlauf auftreten kann.
Zitat:


Du betrachtest die Zeichen-Variable &quot;Char&quot; als
Zahl. Sie
enthält aber ein Unicode-Zeichen. An den Zahlenwert kommt man
deshalb
erst durch Konvertierung.
Genauer gesagt enthält sie ein Unicode-Zeichen, welches durch eine 16-Bit-Ganzzahl dargestellt wird und deshalb Werte von 0 - 65535 annehmen kann. Das ist das gleiche wie wenn du eine Zahl als UInt16 deklarierst, nur dass eben der char-Datentyp bei der Umwandlung in einen String dazu führt, dass nicht die Zahl als dezimale Zahl ausgegeben wird, sondern dass ein Zeichen mit genau diesem Wert verwendet wird. Trotzdem wird das Zeichen natürlich als primitiver Datentyp (Werttyp) gespeichert, also als Ganzzahl. Deswegen kann man da in C-artigen Sprachen normal damit rechnen, was ja auch logisch ist.
Zitat:


Deine Gedanken, konsequent zu ende gedacht, ist alles nur
eine Folge
von Bytes.

Genau das macht man ja auch als Programmierer, oder nicht?
OK, als Wirtschaftler vielleicht nicht, aber als Informatiker "denkt" man in Bytes.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Manfred X
Datum: 11.03.11 15:28

Hallo!

Verwendest Du nie Structures.

Schreibst Du nie Funktionen, die ihre Ganzzahl-Werte
als Parameter erhalten und Du deshalb nie sicher sein
kannst, ob es im Einzelfall zum Überlauf kommt.
Oder testest Du jede einzelne Operation auf Überlauf.
(Das ist aufwendig!)

Alle Werte werden als Bytefolge gespeichert.
Das ist doch kein Argument, um sie auf der Datenebene
als "beliebig" zu behandeln.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 15:41

Hallo,

Manfred X schrieb:
Zitat:

Verwendest Du nie Structures.
Klar verwende ich Structures, wieso sollte ich das nicht machen? (Leider gibt es die unter Java nicht so direkt, dort kann man das nur als Klasse realisieren).
Das Beispiel mit den x/y-Koordinaten kann man natürlich als Struktur machen, dass man eine x- und eine y-Variable hat, aber es geht mir allgemein darum, wenn man eben nur eine Zahl übergeben will/kann. Natürlich verwende ich meistens die Point-Klasse, um einen Punkt zu übergeben, die Rectangle-Klasse um einen Punkt + Höhe/Breite zu übergeben usw. Es ist ja auch der Sinn von OOP-Sprachen, dass man zusammengehörende Daten und Methoden in einem Objekt kapselt.

Zitat:

Schreibst Du nie Funktionen, die ihre Ganzzahl-Werte
als Parameter erhalten und Du deshalb nie sicher sein
kannst, ob es im Einzelfall zum Überlauf kommt.
Oder testest Du jede einzelne Operation auf Überlauf.
(Das ist aufwendig!)
Naja, wenn ich eine Funktion hab, der als Argument eine Ganzzahl übergeben wird, wird da normalerweise auch kein Überlauf auftreten, da ich normalerweise damit nicht rechne. Häufig übergibt man einer Funktion eine Ganzzahl, die dann z.b. für einen Array-Index o.ä. steht. Und selbst wenn ein Überlauf auftritt, ist das in dem meisten Fällen so gewünscht, ansonsten muss man halt prüfen, ob ein Überlauf möglich ist (In C# kann man da den Code praktischerweise in einen checked{}-Block setzen). In manchen Fällen ist es da schon praktischer, wenn man dann einen Überlauf gemeldet bekommt, allerdings ist das eigentlich relativ selten, dass man das beachten müsste.

Aber du hast schon Recht, beim Einstieg in die Programmierung ist es viel praktischer, wenn man einen Über-/Unterlauf gemeldet bekommt.
Zitat:

Alle Werte werden als Bytefolge gespeichert.
Das ist doch kein Argument, um sie auf der Datenebene
als &quot;beliebig&quot; zu behandeln.

Ja, klar. Darum geht es mir ja auch nicht, sondern darum, dass eben VB.Net ein bisschen umständlicher ist und man dort beispielsweise mit chars nicht rechnen kann. Natürlich sollte man nicht alles als Bytefolgen behandeln, sondern mit einem bestimmten Typ.

Mir ist schon klar, dass das hier ein VB.Net Forum ist; es ist halt meine persönliche Meinung, dass VB.Net im Vergleich zu anderen Sprachen wie C, C#, Java usw. mehr oder weniger umständlich ist.

Beitrag wurde zuletzt am 11.03.11 um 16:07:54 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: Preisser
Datum: 11.03.11 17:22

Hallo DaveS,

ja, da hast du Recht, da die Klasse Object ja die Oberklasse von allen anderen Klassen ist, kann eine mit "object" deklarierte Variable natürlich alle Art von Objekten aufnehmen, auch Referenzen auf primitive Typen. Da Object aber eben als minimale Klasse nicht viele Methoden hat, muss man zuerst ein Objekt in eine bestimmte Unterklasse umwandeln, wenn man eine Methode der Unterklasse anwenden will. Bzw. kann man ja auch in mit mit object deklarierten Variablen Zahlen speichern, allerdings ist das auch in .Net dann nur eine Referenz auf ein Box-Objekt, das diese Zahl enthält, soweit ich das beurteilen konnte. Beispielsweise kann man natürlich nicht
object o1 = 3, o2 = 5;
int i = o1 + o2;
(C#) machen, da es logischerweise für object keinen +-Operator gibt und man die Objekte vorher auf (int) casten müsste (wenn man sicher ist, dass sie tatsächlich auch ein int enthalten). In VB.Net gibt das aber ohne "Option Strict On" keinen Fehler, anscheinend aufgrund einer automatischen Konvertierung, wie auch Manfred schon sagte.

Ich muss allerdings zugeben, dass ich mich mit .Net noch nicht so eingehend befasst habe, deshalb muss das natürlich nicht alles richtig sein, was ich sage. ;)

Beitrag wurde zuletzt am 11.03.11 um 17:26:25 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.Net oder C# ??? 
Autor: ModeratorRalfE (Moderator)
Datum: 11.03.11 22:59

Der Mensch ist ein Gewohnheitstier und weil etwas anders ist, muss es nicht unbedingt schlechter sein.

In der Firma entwickel ich mit C# und meine privaten Projekte realisiere ich soweit mit VB.NET. Persönlich gefällt mir die VB-Syntax besser. Sie ist sprechender, was imho das Lesen angenehmer macht, und dank VS tippt man kaum mehr als ein C#-Entwickler.

Bei der Verarbeitung von XML-Daten finde ich VB dank den XML-Literalen bedeutend produktiver als C#. Und ich muss weniger tippen als ein C#-Entwickler :-p

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel