VB.NET
|
C#
|
Comentários |
‘ linha única
Rem somente uma linha |
// somente uma linha
/* Multiplas
linhas */
/// comentário XML em um linha
/** comentário XML em múltiplas linhas */ |
Tipos de dados |
Tipos por Valor
Boolean
Byte
Char (exemplo: “A”)
Short, Integer, Long
Single, Double
Decimal
DateTipos por Referência
Object
StringDim x As Integer
Console.WriteLine(x.GetType()) ‘ Imprime System.Int32
Console.WriteLine(TypeName(x)) ‘ Imprime Integer’ Conversão de Tipos
Dim numDecimal As Single = 3.5
Dim numInt As Integer
numInt = CType(numDecimal, Integer) ‘ Define para 4
numInt = CInt(numDecimal) ‘ mesmo resultado que com CType
numInt = Int(numDecimal) ‘ Define para3 (A função Int trunca o decimal) |
Tipos por Valor
bool
byte, sbyte
char (exemplo: ‘A’)
short, ushort, int, uint, long, ulong
float, double
decimal
DateTimeTipos por Referência
object
stringint x;
Console.WriteLine(x.GetType()); // Imprime System.Int32
Console.WriteLine(typeof(int)); // Imprime System.Int32
// Conversão de Tipos
double numDecimal = 3.5;
int numInt = (int) numDecimal; // define para 3 (trunca o decimal) |
Constantes |
Const MAX_STUDENTS As Integer = 25 |
const int MAX_STUDENTS = 25; |
Enumerations |
Enum Action
Start
[Stop] ‘ Stop é uma palavra reservada
Rewind
Forward
End EnumEnum Status
Flunk = 50
Pass = 70
Excel = 90
End Enum
Dim a As Action = Action.Stop
If a <> Action.Start Then Console.WriteLine(a) ‘ Imprime 1Console.WriteLine(Status.Pass) ‘ Imprime 70
Console.WriteLine(Status.Pass.ToString()) ‘ Imprime Pass |
enum Action {Start, Stop, Rewind, Forward};
enumStatus {Flunk = 50, Pass = 70, Excel = 90};Action a = Action.Stop;
if (a != Action.Start)
Console.WriteLine(a + ” e ” + (int) a); // Imprime “Stop e 1″Console.WriteLine(Status.Pass); // Imprime Pass |
Operadores |
Comparação
= < > <= >= <>
Aritimético
+ – * /
Mod
(divisão inteira)
^ (eleva a potência)
Atribuição
= += -= *= /= = ^= <<= >>= &=
Bitwise
And AndAlso Or OrElse Not << >>
Logico
And AndAlso Or OrElse Not
Note: AndAlso and OrElse are for short-circuiting logical evaluations
Concatenação de strings
& |
Comparação
== < > <= >= !=
Aritimético
+ – * /
% (mod)
/ (idivisão inteira se ambos os operadores são ints)
Math.Pow(x, y) (eleva a potência)
Atribuição
= += -= *= /= %= &= |= ^= <<= >>= ++ —
Bitwise
& | ^ ~ << >>
Logico
&& || !
Note: && and || perform short-circuit logical evaluations
Concatenação de strings
+ |
If |
saudacao= IIf(age < 20, “Tudo bem ?”, “Ola”)
‘ Uma linha não requere “End If”, nem “Else”
If language = “VB.NET” Then langType = “verbose”
‘ Usar : para por dois comandos na mesma linha
If x <> 100 And y < 5 Then x *= 5 : y *= 2
‘ Preferido
If x <> 100 And y < 5 Then
x *= 5
y *= 2
End If
‘ para quebrar linhas longas use _ (underscore)
If teste1 < teste2 And teste3 > 100 Then _
outra linha
‘If x > 5 Then
x *= y
ElseIf x = 5 Then
x += y
ElseIf x < 10 Then
x -= y
Else
x /= y
End If
Select Case color ‘ Deve ser um tipo primitivo
Case “pink”, “red”
r += 1
Case “blue”
b += 1
Case “green”
g += 1
Case Else
other += 1
End Select |
saudacao= age < 20 ? “Tudo bem ?” : “Ola”;
if (x != 100 && y < 5) { // múltiplos comandos precisam estar entre {}
x *= 5;
y *= 2;
}
Não precisa de _ ou : desde que ; é usado para terminar cada comando
if (x > 5)
x *= y;
else if (x == 5)
x += y;
else if (x < 10)
x -= y;
else
x /= y;
switch (color) { // precisa ser um inteiro ou string
case “pink”:
case “red”: r++; break; // break é obrigatorio
case “blue”: b++; break;
case “green”: g++; break;
default: other++; break;
} |
Loops |
Loops com Pré teste |
While c < 10
c += 1
End While |
Do Until c = 10
c += 1
Loop |
Do While c < 10
c += 1
Loop |
For c = 2 To 10 Step 2
Console.WriteLine(c)
Next |
loop com teste posterior |
Do
c += 1
Loop While c < 10 |
Do
c += 1
Loop Until c = 10 |
‘ loopin em Array ou collection
Dim nomes As String() = {“Janice”, “Miriam”, “Macoratti”}
For Each s As String In nomes
Console.WriteLine(s)
Next |
Loops com pré teste// não tem a palavra chave until
while (i < 10)
i++;for (i = 2; i < = 10; i += 2)
Console.WriteLine(i);loop com teste posteriordo
i++;
while (i < 10);
‘ loopin em Array ou collection
string[] nomes = {“Janice”, “Miriam”, “Macoratti”};
foreach (string s in nomes)
Console.WriteLine(s); |
Arrays |
Dim nums() As Integer = {1, 2, 3}
For i As Integer = 0 To nums.Length – 1
Console.WriteLine(nums(i))
Next’ 4 é o indice do último elemento, então ele trata 5 elementos
Dim names(4) As String
names(0) = “Macoratti”
names(5) = “Miriam” ‘ Throws System.IndexOutOfRangeException’ Redimensiona um array mantendo os valores existentes
ReDim Preservenomes(6)Dim DuasD(rows-1, cols-1) As Single
DuasD(2, 0) = 4.5
Dim jagged()() As Integer = { _
New Integer(4) {}, New Integer(1) {}, New Integer(2) {} }
jagged(0)(4) = 5 |
int[] nums = {1, 2, 3};
for (int i = 0; i < nums.Length; i++)
Console.WriteLine(nums[i]);// 5 é o tamanho do array
string[] names = new string[5];
names[0] = “Macoratti”;
names[5] = “Miriam”; // Throws System.IndexOutOfRangeException// C# não pode redimensionar um array dinamicamente. Copie em um novo array
string[] nomes2 = new string[7];
Array.Copy(nomes, nomes2, nomes.Length); // ou nomes.CopyTo(nomes2, 0);float[,] DuasD = new float[rows, cols];
DuasD[2,0] = 4.5f;
int[][] jagged = new int[3][] {
new int[5], new int[2], new int[3] };
jagged[0][4] = 5; |
Funções |
‘ Passa por valor (é o padrão)
Sub TestFunc(ByVal x As Integer, ByRef y As Integer, ByRef z As Integer)
x += 1
y += 1
z = 5
End SubDim a = 1, b = 1, c As Integer ‘
TestaFunc(a, b, c)
Console.WriteLine(“{0} {1} {2}”, a, b, c) ‘ 1 2 5’ Aceita número de argumentos variáveis
Function Sum(ByVal ParamArray nums As Integer()) As Integer
Sum = 0
For Each i As Integer In nums
Sum += i
Next
End FunctionDim total As Integer = Sum(4, 3, 2, 1) ‘ retorna 10
Sub DizOla(ByVal nome As String, Optional ByVal prefix As String = “”)
Console.WriteLine(Saudacoes, ” & prefix & ” ” & nome)
End Sub
DizOla(“Strangelove”, “Dr.”)
DizOla(“Macoratti”) |
// ‘ Passa por valor (é o padrão)
void TestFunc(int x, ref int y, out int z) {
x++;
y++;
z = 5;
}int a = 1, b = 1, c; // c não precisa inicialização
TesatFunc(a, ref b, out c);
Console.WriteLine(“{0} {1} {2}”, a, b, c); // 1 2 5′ Aceita número de argumentos variáveis
int Sum(params int[] nums) {
int sum = 0;
foreach (int i in nums)
sum += i;
return sum;
}int total = Sum(4, 3, 2, 1); // retorna 10
void DizOla(string nome, string prefix) {
Console.WriteLine(“Greetings, ” + prefix + ” ” + nome);
}void DizOla(string nome) {
DizOla(nome, “”);
} |
Tratamento de exceção |
‘ Tratamento de erro desatualizado
On Error GoTo MyErrorHandler
…
MyErrorHandler: Console.WriteLine(Err.Description)Dim ex As New Exception(“Alguma coisa esta errada”)
Throw exTry
y = 0
x = 10 / y
Catch ex As Exception When y = 0 ‘ Argumento e When é opcional Console.WriteLine(ex.Message)
Finally
Beep()
End Try |
Exception up = new Exception(“Alguma coisa esta errada.”);
throwup;try {
y = 0;
x = 10 / y;
}
catch (Exception ex) { // Argumento é opcional Console.WriteLine(ex.Message);
}
finally {
} |
Namespaces |
Namespace Harding.Compsci.Graphics
…
End Namespace‘ orNamespace Harding
Namespace Compsci
Namespace Graphics
…
End Namespace
End Namespace
End NamespaceImports Harding.Compsci.Graphics |
namespace Harding.Compsci.Graphics {
…
}// ornamespace Harding {
namespace Compsci {
namespace Graphics {
…
}
}
}using Harding.Compsci.Graphics; |
Classes / Interfaces |
‘Modificadores de acesso
Public
Private
Friend
Protected
Protected Friend
Shared’ herança
Class FootballGame
Inherits Competition
…
End Class‘ Definição de interface
Interface IAlarmClock
…
End Interface// Extendendo uma interface
Interface IAlarmClock
Inherits IClock
…
End Interface
// Implementando uma interface
Class WristWatch
Implements IAlarmClock, ITimer
…
End Class |
‘Modificadores de acesso
public
private
internal
protected
protected internal
static’ herança
class FootballGame : Competition {
…
}
//’ Definição de interface
interface IAlarmClock {
…
}// Extendendo uma interface
interface IAlarmClock : IClock {
…
}
//Implementando uma interface
class WristWatch : IAlarmClock, ITimer {
…
} |
Construtores |
Class SuperHeroii
Private _nivelPoder As IntegerPublic Sub New ()
_nivelPoder = 0
End SubPublic Sub New (ByVal nivelPoder As Integer)
Me._nivelPoder = nivelPoder
End SubProtected Overrides Sub Finalize ()
MyBase.Finalize()
End Sub
End Class |
class SuperHeroi {
private int _nivelPoder;public SuperHeroi() {
_nivelPoder = 0;
}public SuperHero8(int nivelPoder) {
this._nivelPoder= nivelPoder;
}~SuperHeroi() {
}
} |
Objetos |
Dimheroii As SuperHeroi = New SuperHeroi
Withheroi
.Nome = “HomedeFerro”
.nivelPoder = 3
End Withheroi.Defend(“Miriam”)
heroi.Rest() ‘ Chamando um método Shared
‘ ou
SuperHeroi.Rest()Dim heroi2 As SuperHeroi =heroi ‘ ambos se referem ao mesmo objeto
hero2.Nome = “MulherGato”
Console.WriteLine(heroi.Nome) ‘ Imprime MulherGatohero = Nothing ‘ Libera o objeto
If heroi Is Nothing Then _
heroi = New SuperHeroi
Dim obj As Object = New SuperHeroi
If TypeOf obj Is SuperHeroi Then _
Console.WriteLine(“è um objeto SuperHeroi .”) |
SuperHeroi heroi = new SuperHeroi();
hero.Nome = “HomedeFerro”;
hero.nivelPoder = 3;
hero.Defend(“Miriam”);
SuperHeroi.Rest(); // Chamando um método estático
SuperHeroiheroi2 =heroi; // ambos se referem ao mesmo objeto
hero2.Name = “MulherGato”;
Console.WriteLine(heroi.Nome); // Imprime MulherGato
hero = null ; // libera o objeto
if (heroi == null)
heroi = new SuperHeroi();
Object obj = new SuperHeroi();
if (obj is SuperHeroi)
Console.WriteLine(“è um objeto SuperHeroi”); |
Structs |
Structure Aluno
Public nome As String
Public gpa As SinglePublic Sub New(ByVal nome As String, ByVal gpa As Single)
Me.nome = nome
Me.gpa = gpa
End Sub
End StructureDim stu As Aluno = New Aluno(“Jefferson”, 3.5)
Dim stu2 As Aluno = stustu2.nome = “Jessica”
Console.WriteLine(stu.nome) ‘ Imprime Jefferson
Console.WriteLine(stu2.nome) ‘ Imprime Jessica |
struct Aluno {
public string nome;
public float gpa;public Aluno(string nome, float gpa) {
this.nome = nome;
this.gpa = gpa;
}
}
Aluno stu = new Aluno(“Jefferson”, 3.5f);
Aluno stu2 = stu;stu2.nome = “Jessica”;
Console.WriteLine(stu.nome); // Imprime Jefferson
Console.WriteLine(stu2.nome); // Imprime Jessica |
Propriedades |
Private _size As Integer
Public Property Size() As Integer
Get
Return _size
End Get
Set (ByVal Value As Integer)
If Value < 0 Then
_size = 0
Else
_size = Value
End If
End Set
End Property
foo.Size += 1 |
private int _size;
public int Size {
get {
return _size;
}
set {
if (value < 0)
_size = 0;
else
_size = value;
}
}
foo.Size++; |
Console I/O |
Caracteres especiais
vbCrLf, vbCr, vbLf, vbNewLine
vbNullString
vbTab
vbBack
vbFormFeed
vbVerticalTab
“”
Chr(65) ‘ Retorna ‘A’Console.Write(“Qual o seu nome “)
Dim name As String = Console.ReadLine()
Console.Write(“Quantos anos voce tem? “)
Dim idade As Integer = Val(Console.ReadLine())
Console.WriteLine(“{0} tem {1} anos.”, name, idade)
‘ ou
Console.WriteLine(nome & ” tem ” & idade & ” anos”)Dim c As Integer
c = Console.Read() ‘Le um único caractere
Console.WriteLine(c) ‘ Imprime 65 se usuario entrar “A” |
Sequencia de escape
n, r
t
“Convert.ToChar(65) // Retorna ‘A’ –
// ou
(char) 65Console.Write(“Qual o seu nome “);
string name = Console.ReadLine();
Console.Write(“Quantos anos voce tem? “);
int idade = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“{0} tem {1} anos.”, name, idade);
// ou
Console.WriteLine(nome + ” tem ” + idade + ” anos.”);
int c = Console.Read(); // ‘Le um único caractere
Console.WriteLine(c); // Imprime 65 se usuario entrar “A” |
File I/O |
Imports System.IO
Dim writer As StreamWriter = File.CreateText(“c:arquivo.txt”)
writer.WriteLine(“Teste.”)
writer.Close()
Dim reader As StreamReader = File.OpenText(“c:arquivo.txt”)
Dim line As String = reader.ReadLine()
While Not line Is Nothing
Console.WriteLine(line)
line = reader.ReadLine()
End While
reader.Close()
Dim str As String = “Texto data”
Dim num As Integer = 123
Dim binWriter As New BinaryWriter (File.OpenWrite(“c:arquivo.dat”))
binWriter.Write(str)
binWriter.Write(num)
binWriter.Close()
Dim binReader As New BinaryReader (File.OpenRead(“c:arquivo.dat”))
str = binReader.ReadString()
num = binReader.ReadInt32()
binReader.Close() |
using System.IO;
StreamWriter writer = File.CreateText(“c:arquivo.txt”);
writer.WriteLine(“Teste.”);
writer.Close();
StreamReader reader = File.OpenText(“c:arquivo.txt”);
string line = reader.ReadLine();
while (line != null) {
Console.WriteLine(line);
line = reader.ReadLine();
}
reader.Close();
string str = “Texto data”;
int num = 123;
BinaryWriter binWriter = new BinaryWriter(File.OpenWrite(“c:arquivo.dat”));
binWriter.Write(str);
binWriter.Write(num);
binWriter.Close();
BinaryReader binReader = new BinaryReader(File.OpenRead(“c:arquivo.dat”));
str = binReader.ReadString();
num = binReader.ReadInt32();
binReader.Close(); |