Re: VB.NET vs. C#

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance




"Herfried K. Wagner [MVP]" <hirf-spam-me-here@xxxxxx> wrote in message
news:%23N34isoRFHA.3144@xxxxxxxxxxxxxxxxxxxxxxx
> Hallo Michael!
>
> "Michael Reukauff" <mreu@xxxxxxxxxxxxxxxx> schrieb:
>> das ist Geschmackssache, beide Sprachen haben ihre Vor und Nachteile
>
> Gerade deshalb ist es nicht nur Geschmackssache. Man kann (objektiv) Vor-
> und Nachteile der Sprachen vergleichen und darauf eine Entscheidung
> basieren lassen.
>
>> Meine subjektive Meinung zu den C#-Vorteilen:
>>
>> Die Produktivität ist höher als mit VB.NET, insbesondere weil
>>
>> - der Editor in VS.NET benutzerfreundlicherer ist (ich benutze
>> Resharper!, den gibt es nicht für VB)
>
> Ich kenne Resharper! nicht, aber ich nehme fast an, dass es ähnliche
> Werkzeuge für VB.NET gibt.
>
>> - C#-Code leichter lesbar ist
>
> Definitiv nein. Klassisches Beispiel: Was ist an

Doch. Meiner Meinung nach ist C#-Code leichter lesebarer. Ich habe mit C vor
zig Jahren begonnen (Microsoft C 4.0) bin dann über C++ zu C# gekommen. Ich
finde, dass VB-Code einfach zuviel Text hat. Klammern sind halt einfach
schneller zu tippen als endIf end for etc. Dazu kommt (so finde ich), dass
der Code dadurch in C# übersichtlicher und leichter zu lesen ist.

>
> \\\
> }
> }
> }
> }
> ///
>
> besser lesbar als an
>
> \\\
> End If
> Loop
> End Sub
> End Class
> ///
Na toll. Was ist das denn für ein Beispiel? Die C#-Klammern sagen doch so
aus dem Zusammenhang gerissen gar nichts aus. Im VB-Code sehe ich, ok das
war ein If etc. Na und. muss ich alles tippen und kostet mich somit Zeit.

>
> ?
>
> Was ist an
>
> \\\
> public class Foo : Goo, IBaz, IBla
> {
> ...
> }
> ///
>
> besser lesbar als an
>
> \\\
> Public Class Foo
> Inherits Goo
> Implements IBaz, IBla
> ...
> End Class
> ///
Ist beides dasselbe, na und? Die C#-Schreibweise ist kompakter. Wer mit C#
programmiert weiss auch so was los ist. Warum muss ich aber dafür soviel
schreiben.?
>
> ?
>
> Was ist an
>
> \\\
> byte a = ...;
> byte b = ...;
> byte c = (byte)(a + b);
> ///
>
> besser lesbar als bei
>
> \\\
> Dim a As Byte = ...
> Dim b As Byte = ...
> Dim c As Byte = a + b
> ///
>
Auch hier wieder: warum muss ich soviel schreiben?
>
> ...
>
>> - Groß-/Kleinschreibung den Code übersichtlicher macht, wenn man sich an
>> die Vorgaben hält.
>
> In Schnittstellen ist eine reine Unterscheidung durch Gross- und
> Kleinschreibung nicht CLS-konform.

Weiss ich. Mach ich auch nicht.

> Innerhalb von Klassen ist eine Unterscheidung nur durch Gross- und
> Kleinschreibung
> eine Fehlerquelle (siehe Antwort an Jens Winter).

Sollte man auch nicht machen. Das ist schlechter Stil.

Aber eine Methode in der Pascal-Schreibweise, wie von MS vorgegeben in der
Art
FunktionDieWasSinnvollesMacht()
ist ja wohl besser zu lesen als

funktiondiewassinnvollesmacht()

Ich möchte die Diskussion für mich hier beenden, denn sie führt zu nichts.
Jeder hat seinen Standpunkt und "seine" Sprache mit der er am liebsten
arbeitet. Bei mir ist es nunmal C#. Nichtdestotrotz kann ich VB.NET Code
lesen und auch programmieren. C# ist für mich aber nunmal, auch aufgrund
meiner Historie, eingängiger.

Tschüß
Michael


.



Relevant Pages

  • Re: If(,,) + Kompilierfehler
    ... >> Dim tmp As ??? ... >> end if ... >> zwischen Object und Listviewitem sein könnte, ... Public Class Item_A ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Die angegebene Umwandlung ist ungültig. eigene DataRow
    ... Sub Main() ... Dim f As New C ... End Sub ... End Class ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: List-Objekt an Datagrid binden
    ... Private Sub Form1_Load(ByVal sender As System.Object, ... Dim myList As Collections.CollectionBase ... End With ... Class Class1 ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: falscher Fehler?
    ... Public Class Form1 ... Private Sub Form1_Load(ByVal sender As System.Object, ... Dim l As New LB ... End Class ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • 1 Makro aus 8
    ... Dim objNamespace As NameSpace ... Dim objTmp As Object ... Dim strFName As String, strDate As String ... End With ...
    (microsoft.public.de.word.vba)