Você está na página 1de 7

25/09/2015

VB.NETeCSharpComparando

VB.NETouC#?Eisaquesto...

Atendendo diversos pedidos neste artigo eu vou falar um pouco sobre C# ; no que eu seja um perito em C#
, mas como estou trabalhando com Java h algum tempo sintome a vontade para falar sobre C# devido a
similaridade 'assombrosa' ( ) entre estas duas linguagens.
Como no pretendo abandonar o Visual Basic vou neste artigo fazer uma comparao entre as duas
linguagens : VB.NET e C# em alguns pontos chaves. Com isto pretendo mostrar que C# no um bicho de 7
cabeas ( talvez 5... ).
Vamos ao que interessa...

1 A apresentao do Cdigo
Quando voc for codificar em C# deve colocar o ponto e vrgula no
final de cada linha de cdigo. (Igual ao Java)
Ex: private string nome; int contador = 10;
Em C# voc pode agrupar blocos de cdigo dentro de um par de
chaves (Cada chave aberta deve ser fechada) : { }
Ex:
if (x == 10)
{
System.out.println(" Cdigo em C#");
}
Em C# todas as variveis devem estar declaradas com um tipo de
dados
Ex: String nome = "Macoratti" ;

2 Declarao de variveis
No Visual Basic .NET usamos a seguinte sintaxe: <escopo> <varivel> As <tipo> ou <escopo>
<varivel> As <tipo> = <valor>
Em C# declaramos variveis da seguinte forma: <escopo> <tipo> <varivel>; ou <escopo> <tipo>
<varivel> = <valor>;
Visual Basic .NET
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

contador As Integer
contador As Integer = 10
dados As Double
dados As Double = 3.5#
valor As Single
nome As String
c As Char
l As Long
m As Decimal

C#
int contador;
int contador = 10;
double dados;
double dados = 3.5;
float f;
string nome;
char c;
long l;
decimal m;

Dim obj As MinhaClasse


MinhaClasse obj;
Dim obj1 As New MinhaClasse()
MinhaClasse obj1 = new MinhaClasse();
Dim obj2 As MinhaClasse = New MinhaClasse() MinhaClasse obj2 = new MinhaClasse();
Public endereco As String
Private cidade As String

http://www.macoratti.net/vbn_cshp.htm

public string endereco;


private string cidade;

1/7

25/09/2015

VB.NETeCSharpComparando

3 Escopo
Visual Basic
.NET

C#

Descrio do escopo

Private

private

Acessvel dentro do mesmo mdulo, classe ou


estrutura.

Friend

internal

Acessvel desde dentro do mesmo Projeto, mas


no fora dele.

Protected

protected

Acessvel dentro da mesma classe ou desde uma


classe derivada dela

Protected
Friend

protected
internal

Acessvel dentro das classes derivadas ou dentro


do mesmo projeto.

Public

public

Acessvel a partir de qualquer lugar do projeto

3 Laos For/Next
Visual Basic .NET
Dim i As Integer
For i = 1 To 10
' ...
Next

C#
int i;
for(i = 1; i<= 10; i++)
{
// ...
}
for(int i = 1; i<=10; i++)

For i As Integer = 1 To 10
Dim objeto As <Tipo>
For Each objeto In coleo

foreach(<Tipo> objeto in coleo)


foreach(<Tipo> objeto in coleo)

For Each objeto As <Tipo> In coleo

4 Laos While, Do... Loop


Visual Basic .NET
Do
'...
Loop While <expresso>

C#
do
{
//...
}while(<expresso>);

While <expresso>
'...
End While

while(<expresso>)
{
//...
}

Do While <expresso>
'...
Loop

while(<expresso>)
{
//...
}

Do

while(true)
{
//...
}

'...
Loop
Do Until <expresso>
'...
Loop

while(!<expresso>)
{
//...
}

Do

do

http://www.macoratti.net/vbn_cshp.htm

2/7

25/09/2015

'...
Loop Until <expresso>

VB.NETeCSharpComparando

{
//...
}while(!<expresso>);

5 Comparaes If/then/ Else...


Visual Basic .NET

C#

If x = 10 Then
'...
End If

if(x == 10)
{
//...
}

If x = 10 Then
'...
Else
'...
End If

if(x == 10)
{
//...
}
else
{
//...
}

If x = 10 Then
'...
ElseIf x > 50 Then
'...
End If

if(x == 10)
{
//...
}
else if(x > 50)
{
//...
}

6 Operadores lgicos e aritmticos


Visual Basic .NET
And
AndAlso

C#
&
&&

Or

OrElse

||

XOr

Not

==

<>

!=

& (concatenaco de
cadeias)

\ (diviso de nmeros
enteiros)

\=

/=

Mod

Is Nothing

== null

7 Procedimentos / Mtodos (funces, propiedades)


Em Visual Basic .NET existem trs tipos de procedimentos: Sub, Function e Property

Procedimento
http://www.macoratti.net/vbn_cshp.htm

3/7

25/09/2015

VB.NETeCSharpComparando

Visual Basic .NET


<escopo> Sub <nome>()
End Sub

C#
<escopo> void <nome>()
{
}

Funo
Visual Basic .NET

C#

<escopo> Function <nome>() As <tipo> <escopo> <tipo> <nome>()


End Function
{
}
Propriedade
Visual Basic .NET

C#

<escopo> Property <nome>() As <tipo>


Get
'...
End Get
Set
'...
End Set
End Property

<escopo> <tipo> <nome>


{
get{
//...
}
set{
//..
}
}

<escopo> ReadOnly Property <nome>


As <tipo>
Get
'...
End Get
End Property

<escopo> <tipo> <nome>


{
get{
//...
}
}

<escopo> WriteOnly Property <nome> As <tipo>


Set
'...
End Set
End Property

<escopo> <tipo> <nome>


{
set{
//..
}
}

8 Realizando uma conexo com um banco de dados


C#
SqlConnection con = new SqlConnection ();
con.ConnectionString = "Initial Catalog=Teste;Data Source=Clientes;trusted_connection=True";
con.Open();
VB.NET
Dim con As SqlConnection = new SqlConnection ()
con.ConnectionString = "Initial Catalog=Teste;Data Source=Clientes;trusted_connection=True"
con.Open()

9 Executando um comando
C#
SqlCommand cmd = new SqlCommand ();
http://www.macoratti.net/vbn_cshp.htm

4/7

25/09/2015

VB.NETeCSharpComparando

cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from clientes";
//atribuir o comando a um DataReader ou DataAdpater
VB .NET
Dim cmd As SqlCommand = new SqlCommand ()
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "Select * from clientes"
//atribuir o comando a um DataReader ou DataAdpater

10 Executando um DataReader
C#
SqlDataReader dr = cmd.ExecuteReader();
While (dr.Read())
{
Console.WriteLine(dr.GetInt32(0) + " , " + dr.GetString(1) + " , " + dr.GetString(1));
}
dr.Close();
VB .NET
Dim dr As SqlDataReader = con.ExecuteReader();
While dr.Read()
Console.WriteLine(dr.GetInt32(0) & " , " & dr.GetString(1) & " , " & dr.GetString(1));
End While
dr.Close()

11 Preenchendo um DataSet
C#
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"Clientes");
VB .NET
Dim da As SqlDataAdapter = new SqlDataAdapter(cmd);
Dim ds AS DataSet ds = new DataSet();
da.Fill(ds,"Clientes");

12 Acessando dados em um DataSet (DataTable)


C#
foreach (DataColumn dc in ds.Tables(0).Columns)
{
http://www.macoratti.net/vbn_cshp.htm

5/7

25/09/2015

VB.NETeCSharpComparando

Console.Write("{0,10}", dc.ColumName);
}
foreach (DataRow dr in ds.Tables[0].Rows)
{
for ( int i =0 ; i < ds.Tables[0].Columns.Count ; i++)
{
Console.WriteLine("{0,10}",dr[i]);
}
Console.WriteLine();
}
VB .NET
Dim dc as DataColumn
For Each dc In ds.Tables(0).Columns
Console.Write("{0,10}", dc.ColumName)
Next
Dim dr As DataRow
For Each dr In ds.Tables(0).Rows
Dim i As Integer
For i = 0 To ds.Tables(0).Columns.Count 1
Console.WriteLine("{0,10}",dr(i))
Next
Console.WriteLine();
Next

13 Salvando um DataSet com um arquivo XML


C#
ds.WriteXml(@"C:\teste\clientes.xml");
VB .NET
ds.WriteXml("C:\teste\clientes.xml")

Considerei em todos os casos a conexo com o provedor .NET SqlClient mas voc poder usar tambm o
provedor OleDb ou ODBC.

Como voc percebeu existe pouca diferena na sintaxe para acesso a dados entre VB.NET e C#.

Em um outro artigo abordarei a migrao VB.NET para C# , e , se isto realmente possvel....

Aguarde!!!

VejaosDestaquesenovidadesdoSUPER
DVDVB(sempreatualizado):cliquee
confira!
Quer migrar para o VB .NET ?
Veja mais sistemas completos para a
plataforma .NET no SuperDVD.NET ,
confira...
Quer aprender C# ??

http://www.macoratti.net/vbn_cshp.htm

6/7

25/09/2015

VB.NETeCSharpComparando

Chegou o SuperDVDC# com exclusivo


material de suporte e vdeo aulas com curso
bsico sobre C#

Gostou ?

Compartilhe no Facebook

Compartilhe no Twitter

Referncias:
Seo VB .NET do Site Macoratti.net
Super DVD .NET A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas Vdeo Aula sobre VB .NET, ASP .NET e C#
Seo C# do site Macoratti.net
Curso VB .NET Bsico Vdeo Aulas
Curso C# Basico Vdeo Aulas
VB.NET e CSharp Comparando Macoratti.net
C# Otimizando o cdigo Macoratti.net
Comparando VB.NET com C#
Jos Carlos Macoratti

http://www.macoratti.net/vbn_cshp.htm

7/7

Você também pode gostar