DocumentVB

Embed Size (px)

DESCRIPTION

Comparação entre vb e c#

Citation preview

  • 25/09/2015 VB.NETeCSharpComparando

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

    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 asimilaridade 'assombrosa' ( ) entre estas duas linguagens.

    Como no pretendo abandonar o Visual Basic vou neste artigo fazer uma comparao entre as duaslinguagens : VB.NET e C# em alguns pontos chaves. Com isto pretendo mostrar que C# no um bicho de 7cabeas ( talvez 5... ).

    Vamos ao que interessa...

    1 A apresentao do Cdigo

    Quando voc for codificar em C# deve colocar o ponto e vrgula nofinal 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 dechaves (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 dedados

    Ex: String nome = "Macoratti" ;

    2 Declarao de variveis

    No Visual Basic .NET usamos a seguinte sintaxe: As ou As =

    Em C# declaramos variveis da seguinte forma: ; ou = ;

    Visual Basic .NET C#Dim contador As IntegerDim contador As Integer = 10Dim dados As DoubleDim dados As Double = 3.5#Dim valor As SingleDim nome As StringDim c As CharDim l As LongDim m As Decimal

    Dim obj As MinhaClasseDim obj1 As New MinhaClasse()Dim obj2 As MinhaClasse = New MinhaClasse()

    Public endereco As StringPrivate cidade As String

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

    MinhaClasse obj;MinhaClasse obj1 = new MinhaClasse();MinhaClasse obj2 = new MinhaClasse();

    public string endereco;private string cidade;

  • 25/09/2015 VB.NETeCSharpComparando

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

    3 Escopo

    Visual Basic.NET C# Descrio do escopo

    Private private Acessvel dentro do mesmo mdulo, classe ouestrutura.

    Friend internal Acessvel desde dentro do mesmo Projeto, masno fora dele.

    Protected protected Acessvel dentro da mesma classe ou desde umaclasse derivada delaProtectedFriend

    protectedinternal

    Acessvel dentro das classes derivadas ou dentrodo mesmo projeto.

    Public public Acessvel a partir de qualquer lugar do projeto

    3 Laos For/Next

    Visual Basic .NET C#Dim i As IntegerFor i = 1 To 10 ' ...Next

    int i;for(i = 1; i

  • 25/09/2015 VB.NETeCSharpComparando

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

    '...Loop Until

    { //...}while(!);

    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 C#And &AndAlso &&Or |OrElse ||XOr ^Not != == !=& (concatenaco decadeias)

    +

    \ (diviso de nmerosenteiros)

    /

    \= /=Mod %Is Nothing == null

    7 Procedimentos / Mtodos (funces, propiedades)

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

    Procedimento

  • 25/09/2015 VB.NETeCSharpComparando

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

    Visual Basic .NET C# Sub ()End Sub

    void (){}

    Funo

    Visual Basic .NET C# Function () As End Function

    (){}

    Propriedade

    Visual Basic .NET C# Property () As Get '... End Get Set '... End SetEnd Property

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

    ReadOnly Property As Get '... End GetEnd Property

    { get{ //... }}

    WriteOnly Property As Set '... End SetEnd Property

    { 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 ();

  • 25/09/2015 VB.NETeCSharpComparando

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

    cmd.Connection = con;

    cmd.CommandType = CommandType.Text;

    cmd.CommandText = "Select * from clientes";

    //atribuir o comando a um DataReader ou DataAdpaterVB .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){

  • 25/09/2015 VB.NETeCSharpComparando

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

    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 .NETDim dc as DataColumnFor Each dc In ds.Tables(0).Columns Console.Write("{0,10}", dc.ColumName)NextDim dr As DataRowFor 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 .NETds.WriteXml("C:\teste\clientes.xml")Considerei em todos os casos a conexo com o provedor .NET SqlClient mas voc poder usar tambm oprovedor 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!!!

    VejaosDestaquesenovidadesdoSUPERDVDVB(sempreatualizado):cliqueeconfira!

    Quer migrar para o VB .NET ?

    Veja mais sistemas completos para aplataforma .NET no SuperDVD.NET ,confira...

    Quer aprender C# ??

  • 25/09/2015 VB.NETeCSharpComparando

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

    Chegou o SuperDVDC# com exclusivomaterial de suporte e vdeo aulas com cursobsico sobre C#

    Gostou ? Compartilhe no Facebook Compartilhe no Twitter

    Referncias:

    Seo VB .NET do Site Macoratti.netSuper DVD .NET A sua porta de entrada na plataforma .NETSuper DVD Vdeo Aulas Vdeo Aula sobre VB .NET, ASP .NET e C#Seo C# do site Macoratti.netCurso VB .NET Bsico Vdeo AulasCurso C# Basico Vdeo AulasVB.NET e CSharp Comparando Macoratti.netC# Otimizando o cdigo Macoratti.netComparando VB.NET com C#

    Jos Carlos Macoratti