VB.NET ou C# ?
Eis a questão ...
Atendendo diversos pedidos neste
artigo eu vou falar um pouco sobre C# ; não que eu seja um
perito em C# , mas como estou trabalhando com Java há algum
tempo sinto-me a vontade para falar sobre C# devido a
similaridade 'assombrosa' (
) entre estas duas linguagens.
Como não pretendo abandonar o
Visual Basic vou neste artigo fazer uma comparação entre as
duas linguagens : VB.NET e C# em alguns pontos chaves. Com isto
pretendo mostrar que C# não é um bicho de 7 cabeças ( talvez
5...
).
Vamos ao que interessa...
1- A apresentação do Código
| - Quando você for codificar em C# deve
colocar o ponto e vírgula no final de cada linha de
código. (Igual ao Java) Ex: private string nome; int contador = 10; - Em C# você pode agrupar blocos de código dentro de um par de chaves (Cada chave aberta deve ser fechada) : { } Ex: if
(x == 10) - Em C# todas as variáveis devem estar declaradas com um tipo de dados Ex: String nome = "Macoratti" ; |
2- Declaração de variáveis
No Visual Basic .NET usamos a seguinte sintaxe: <escopo> <variável> As <tipo> ou <escopo> <variável> As <tipo> = <valor>
Em C# declaramos variáveis da seguinte forma: <escopo> <tipo> <variável>; ou <escopo> <tipo> <variável> = <valor>;
| Visual Basic .NET | C# |
Dim contador As Integer Dim contador As Integer = 10 Dim dados As Double Dim dados As Double = 3.5# Dim valor As Single Dim nome As String Dim c As Char Dim l As Long Dim m As Decimal Dim obj As MinhaClasse Dim obj1 As New MinhaClasse() Dim obj2 As MinhaClasse = New MinhaClasse() Public endereco As String Private 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; |
3- Escopo
| Visual Basic .NET | C# | Descrição do escopo |
| Private | private | Acessível dentro do mesmo módulo, classe ou estrutura. |
| Friend | internal | Acessível desde dentro do mesmo Projeto, mas não fora dele. |
| Protected | protected | Acessível dentro da mesma classe ou desde uma classe derivada dela |
| Protected Friend | protected internal | Acessível dentro das classes derivadas ou dentro do mesmo projeto. |
| Public | public | Acessível a partir de qualquer lugar do projeto |
3- Laços - For/Next
| Visual Basic .NET | C# |
Dim i As Integer
For i = 1 To 10
' ...
Next
|
int i;
for(i = 1; i<= 10; i++)
{
// ...
}
|
For i As Integer = 1 To 10 |
for(int i = 1; i<=10; i++) |
Dim objeto As <Tipo> For Each objeto In coleção |
foreach(<Tipo> objeto in coleção) |
For Each objeto As <Tipo> In coleção |
foreach(<Tipo> objeto in coleção) |
4- Laços - While, Do... Loop
| Visual Basic .NET | C# |
Do
'...
Loop While <expressão>
|
do
{
//...
}while(<expressão>);
|
While <expressão>
'...
End While
|
while(<expressão>)
{
//...
}
|
Do While <expressão>
'...
Loop
|
while(<expressão>)
{
//...
}
|
Do
'...
Loop
|
while(true)
{
//...
}
|
Do Until <expressão>
'...
Loop
|
while(!<expressão>)
{
//...
}
|
Do
'...
Loop Until <expressão>
|
do
{
//...
}while(!<expressão>);
|
5- Comparações - 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 lógicos e aritméticos
| Visual Basic .NET | C# |
| And | & |
| AndAlso | && |
| Or | | |
| OrElse | || |
| XOr | ^ |
| Not | ! |
| = | == |
| <> | != |
| & (concatenacão de cadeias) | + |
| \ (divisão de números enteiros) | / |
| \= | /= |
| Mod | % |
| Is Nothing | == null |
7- Procedimentos / Métodos (funcões, propiedades)
Em Visual Basic .NET
existem três tipos de procedimentos: Sub, Function e Property
- Procedimento
| Visual Basic .NET | C# |
<escopo> Sub <nome>() End Sub |
<escopo> void <nome>()
{
}
|
- Função
| Visual Basic .NET | C# |
<escopo> Function <nome>() As <tipo> End Function |
<escopo> <tipo> <nome>()
{
}
|
- Propriedade
| Visual Basic .NET | C# |
|
|
|
|
|
<escopo>
WriteOnly
Property
<nome> As
<tipo> Set '... End Set End Property |
<escopo> <tipo>
<nome> { set{ //.. } } |
8- Realizando uma conexão 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 (); 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) {
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 conexão com o provedor .NET SqlClient mas você poder usar também o provedor OleDb ou ODBC.
Como você percebeu existe pouca diferença na sintaxe para acesso a dados entre VB.NET e C#.
Em um outro artigo abordarei a migração VB.NET para C# , e , se isto é realmente possível....
Aguarde!!! ![]()
Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira... Quer aprender C# ??
Chegou o
Super DVD C# com exclusivo material de
suporte e vídeo aulas com curso básico sobre C# |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Curso VB .NET Básico - Vídeo Aulas
Curso C# Basico - Vídeo Aulas