Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Syntaxvergleich C# und Visual Basic - Vergleich der Syntax der .NET-Sprachen C# 3.0 (alias 2008) und Visual Basic 8.0 (alias 2008)

 

 

Zweck

Visual Basic 2005/2008

C# 2005/2008

Einsprungpunkt

Sub Main(ByVal args() As String)

static void Main(string[] args)

Namensraum

Namespace X
 
End Namespace

Namespace X {

}

Klasse

Class 

End Class

Class {

}

Öffentliche Klasse

Public Class

public class

Klasse nur innerhalb der Assembly sichtbar

Friend Class

internal class

Partielle Klasse

Partial Class

partial class

Variablendeklaration/
Attributdefinition als Field

Dim x as Typ

Typ x

Attributdefinition als Property

Property X() As String

   Get

    Return _X

   End Get

   Set(ByVal value As String)

    _X = value

   End Set

End Property

public string X

  {

   get { return x; }

   set { x = value; }

  }

oder kurz:

public Type Name { get; set; }

Array

Dim x as Byte()

byte[] x;

Array-Größenveränderung

ReDim Preserve

Array.Resize()

Methode mit Rückgabewert

Function f() as Typ


End Function

Typ f()

{

}

Methode ohne Rückgabewert

Sub f() as Typ


End Sub

void f()

{

}

Überladene Methode

Overloads

(keine Zusatzangabe)

Methode verlassen

Return

return

Methode verlassen und beim nächsten Aufruf danach fortsetzen

n/a

yield

Bezug auf Basisklasse

MyBase

base

Bezug auf aktuelle Klasse

MyClass

(Name der Klasse)

Bezug auf das aktuelle Objekt

Me

this

Implementierungsvererbung

Inherits

class C1 : C2

Deklaration einer Schnittstelle

Interface

interface

Schnittstellenvererbung

Implements

class C1 : I1

Konstantes Mitglied

Const

const

Methoden ohne Rückgabewert

Sub

void

Statisches Mitglied

Shared

static

Enumeration

Enum <members> End Enum

enum

Abstrakte Klasse

MustInherit

abstract

Finale Klasse

NotInheritable

sealed

Überschreiben einer Methode

Overrides

override

Abstrakte Methode

MustOverride

abstract

Versiegelte Methode

NotOverridable

sealed

Überschreibbare Methode

Overridable

virtual

Verdeckendes
Mitglied

Shadows

(keine Zusatzangabe)

Konstruktor

Sub New() … End Sub

public Klassenname()  { … }

Desktruktor/Finalizer

Sub Finalize() … End Sub

~Person() { … }

 

Referenz auf eine Methode

Delegate

delegate

Mitglied mit Ereignissen

WithEvents

n/a

Bindung einer Ereignisbehandlungsroutine

Handles
AddHandler
RemoveHandler

+=

-=

Blockbildung für Objekte

With obj … End With

n/a

Datumsliteral

#12/20/2008#

New DateTime(2008,12,20)

Zeilenumbruch

vbCrLf

"\n"

Wertlose Werttypen

Nullable(Of Typ)

Typ? Oder
Nullable<Typ>

Generische Klasse

Klasse(of Typ)

Klasse<Typ>

Typermittlung

obj.GetType()

typeof(obj)

obj.GetType()

Typkonvertierung

CType()
DirectCast
TryCast

(Typ) Variable
Variable as Type

Typvergleich

TypeOf k1 Is Kunde

k1 is Kunde

Anonyme Methoden

n/a

+= delegate(){ … }

Zeigerprogrammierung

n/a

unsafe, &x, *x

LINQ-Abfrageausdruck (nur 2008)

From m In Menge Where m.Feld < 1000 Select m;

from m in Menge where m.Feld < 1000 select m

Implizit typisierte Variable (nur 2008)

Dim x = Wert

var x = Wert

Lambda-Ausdruck

Dim f3 As Func(Of String, Integer) = Function(s) s.Length

Func<string, int> f3 = s => s.Length;

XML-Literale (nur 2008)

TODO

(nicht verfügbar)

 

 


Datentypen:

 

 

Visual Basic

C#

Ganzzahl
1 Byte

Byte

byte

Ganzzahl
Boolean

Boolean

bool

Ganzzahl
2 Bytes

Short

short

Ganzzahl
4 Bytes

Integer

int

Ganzzahl
8 Bytes

Long

long

Zahl
4 Bytes

Single

float

Zahl
8 Bytes

Double

double

Zahl
12 Bytes

Decimal

decimal

Zeichen
1 Byte oder 2 Bytes

Char

char

Zeichenkette

String

string

Datum/Uhrzeit

Date

DateTime

 

Operatoren:

 

 

Visual Basic

C#

Mathematik

Addition

+

+

Subtraktion

Multiplikation

*

*

Division

/

/

Ganzzahldivision

\

/

Modulus

Mod

%

Potenz

^

n/a

Negation

Not

~

Inkrement

n/a

++

Dekrement

n/a

--

Zuweisung

Einfache Zuweisung

=

=

Addition

+=

+=

Subtraktion

-=

-=

Multiplikation

*=

*=

Division

/=

/=

Ganzzahl-Division

\=

/=

Zeichenkettenverbindung

&=

+=

Modulus (Divisionsrest)

n/a

%=

Bit-Verschiebung nach links

<<=

<<=

Bit-Verschiebung nach rechts

>>=

>>=

Bit-weises UND

n/a

&=

Bit-weises XOR

n/a

^=

Bit-weises OR

n/a

|=

Vergleich

Kleiner

< 

< 

Kleiner gleich

<=

<=

Größer

> 

> 

Größer gleich

>=

>=

Gleich

=

==

Nicht gleich

<>

!=

Objektvergleich

Is

==

Objektvergleich (negativ)

IsNot

!=

Objekttypvergleich

TypeOf x Is Class1

x is Class1

Zeichenkettenvergleich

=

==

 

Zeichenkettenverbindung

&

+

Logische Operatoren

UND

And

&&

ODER

Or

||

NICHT

Not

!

Short-circuited UND

AndAlso

&&

Short-circuited ODER

OrElse

||

Bit-Operatoren

Bit-weises UND

And

&

Bit-weises XOR

Xor

^

Bit-weises OR

Or

|

BitVerschiebung nach links

<<

<< 

Bit-Verschiebung nach rechts

>>

>> 

Sonstiges

Bedingt

IIF- Funktion und If-Operator

?:

Bedingt (für Nullable Types)

n/a

?? :