Windows Forms - Variáveis
Module Tipos_de_variaveis

em C#

sByte bytecomsinal = 0; short byte
Valores de retorno : 0=ok -1 = erro


Tipo Enum

    Enum UserType ' são basicamente números que são trocados por nomes
        Admin ' elemento 0
        Guest ' elemento 1
        Other ' elemento 2
    End Enum

    ' exemplo de declaração de variáveis

Tipos básicos

    'aqui você pode declarar variáveis que podem ser utilizadas pelas classes - Seriam as variáveis globais
    ' mas não pode fazer operações matematicas, redimensionar matrizes ou qualquer outra operação com as variáveis
    Dim CodigoErro As System.Int32
    Dim MeuNome As System.String
    Dim SeuNome As String
    Dim CodigoErro2 As Integer = 10
    Dim NomeDele As String = "Mateus"
    Dim Numero1 As Integer ' Numero1 agora contém o valor 0    '(1)
    Dim StringVariavel1 As String = "Isto é um string"
    Dim StringVariavel2 = "Isto também é um string"
    Dim MysteryVariable1 = 10 ' cria uma variável inteira
    Dim MysteryVariable2 = 10.1 ' cria uma variável double

Arrays

    Dim ArrayString(3) As String ' Cria um array de quatro strings (de 0 até 3).
    Dim ArrayInt(1, 3) As Integer ' Cria um array de 2 por 4 de variáveis inteiras dando um total de 8 variáveis inteiras.
    Dim ArrayString2() As String = {"1", "2", "3", "4"} ' Cria um array de 4 string, um para cada número de 1 a 4.
    Dim IntArray(,) As Integer = {{1, 2}, {3, 4}, {5, 6}, {7, 8}} ' Cria um array de 4 por 2 (uma grade de 4 linhas por 2 colunas).

    Dim ArrayInt2() As Integer = {1, 2, 3, 4}
    Dim Elemento1 As Integer '(2)

    Dim ArrayInt3(,) As Integer = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}
    Dim Elemento2 As Integer '(3)

    Dim MeuArray(10, 10) As Integer '(4)

    Dim ListaDinamica As New ArrayList() '(6)
    Dim Item As String = CType(ListaDinamica(0), String)

    ' enumeradores
    Dim NewUserType As UserType '(7)

    'operações com variáveis
    Dim Numero As Integer '(8)

    Public Sub DentroFuncao()

        Dim MeuArray3(10, 10) As Integer '(5)

        '1-Inteiro - Qualquer operação com variáveis deve ser feito dentro de um módulo ou função
        Numero1 = Numero1 + 1 ' erro...esta operação tem que ser feita dentro de uma sub ou func

        '2-Array : Atribuição de array
        Elemento1 = ArrayInt2(2) ' Elemento agora tem o valor 3 ' erro...esta operação tem que ser feita dentro de uma sub ou func

        '3-Array : Atribuição de array
        Elemento2 = ArrayInt3(0, 1) 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '4-Array : Redimensionamento de arrays tem que ser feita dentro de uma sub ou func
        ReDim MeuArray(20, 20) 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '5-Array : Redimensionamento de arrays tem que ser feita dentro de uma sub ou func
        '            Preserve só se o scopo da variável estiver junto com a redefinição da matriz...se for global dá erro
        ReDim Preserve MeuArray3(10, 20)
        ReDim Preserve MeuArray3(20, 20)

        '6-ArrayList - Instanciar um objeto tem que ser feita dentro de uma sub ou func
        ListaDinamica.Add("one")
        ListaDinamica.Add("two")
        ListaDinamica.Add("three")

        '7-UserType - Instanciar um objeto tem que ser feita dentro de uma sub ou func
        NewUserType = UserType.Admin

        '8-Inteiro - Qualquer operação com variáveis deve ser feito dentro de um módulo ou função
        Numero = 4 + 2 * 3
        Numero = (4 + 2) * 3


        Numero1 = Numero1 + 1 'Numero1 agora contém o valor 1
        Elemento1 = ArrayInt2(2) 'Elemento agora tem o valor 3
        Elemento2 = ArrayInt3(0, 1) 'Elemento2 agora tem o valor 2
        ReDim MeuArray(20, 20) 'Redimensaiona o array

        ListaDinamica.Add("one")
        ListaDinamica.Add("two")
        ListaDinamica.Add("three")

        NewUserType = UserType.Admin

        Numero = 4 + 2 * 3 ' Number will be 24.
        Numero = (4 + 2) * 3 ' Number will be 18.

        Dim PrimeiroNome = "Antonio"
        Dim Sobrenome = "Bonito"
        MeuNome = PrimeiroNome & " " & Sobrenome ' concatena ( soma ) strings

        Dim MeuValor As Integer
        MeuValor += 10 ' soma 10 ao valor da variavel
        MeuValor *= 3 ' multiplica por 3
        MeuValor /= 12 ' divide por 12 dá erro se Option Strict On

        Dim MeuValor1 As Integer = 1
        Dim MeuValor2 As Integer = 1
        Dim MeuValor3 As Integer = 1
        MeuValor = MeuValor1 + MeuValor2 + MeuValor3

        ' quebra de linha - continuação de linha
        MeuValor = MeuValor1 + MeuValor2 + MeuValor3

        ' matematica avançada
        Dim MeuValor4 As Double
        MeuValor4 = Math.Sqrt(81) ' MeuValor4 = 9.0
        MeuValor4 = Math.Round(42.889, 2) ' MeuValor4 = 42.89
        MeuValor4 = Math.Abs(-10) ' MeuValor4 = 10.0
        MeuValor4 = Math.Log(24.212) ' MeuValor4 = 3.18.. (and so on)
        MeuValor4 = Math.PI ' MeuValor4 = 3.14.. (and so on)

        ' conversão de tipos : Menor para maior sempre dá certo...contrário não é verdade
        Dim ValorGrande As Integer = 100
        Dim ValorPequeno As Short
        Dim MeuTexto2 As String = "100"
        ValorPequeno = ValorGrande ' Converte ValorGrande de 32-bit em um número de 16-bits ( dá erro se Option Strict On ).
        ValorGrande = MeuTexto2 ' Converte MeuTexto2 em um número ( dá erro se Option Strict On ).
        ValorPequeno = CType(ValorGrande, Short)
        ValorGrande = CType(MeuTexto2, Integer)
        Numero1 = Val(MeuTexto2)

        Dim MeuString2 As String
        Dim MeuInteiro2 As Integer = 100
        MeuString2 = MeuInteiro2.ToString()

        ' operações com string
        Dim MeuString3 As String = "Isto é um teste de string "
        MeuString3 = MeuString3.Trim() 'retorna "Isto é um teste de string" sem os espaços
        MeuString3 = MeuString3.Substring(0, 4) 'retorna "Isto"
        MeuString3 = MeuString3.ToUpper() 'retorna "ISTO"
        MeuString3 = MeuString3.Replace("IS", "ES") 'retorna "ESTE"
        Dim Length As Integer = MeuString3.Length 'retorna 4
        MeuString3 = MeuString3.Trim().Substring(0, 4).ToUpper().Replace("IS", "AT")

        MeuString3 = "alo".ToUpper() ' Seta Meustring3 para"ALO"

        Dim MeuInt2 As Integer
        MeuInt2 = "TESTE123".IndexOf("1") ' retorna 4

        Dim a() As String
        Dim b As String = "ISTO, EH, UM, TESTE"
        Dim c As String
        a = b.Split(",")
        c = String.Join(",", a)

        ' datas e horarios
        Dim MinhaData1 As DateTime = DateTime.Now
        MinhaData1 = MinhaData1.AddDays(100)
        Dim DateString As String = MinhaData1.Year.ToString()
        Dim MinhaData2 As Date = DateTime.Now.AddHours(3000)

        Dim Diferença1 As TimeSpan
        Diferença1 = MinhaData2.Subtract(MinhaData1)

        Dim NumeroDeMinutos As Double
        NumeroDeMinutos = Diferença1.TotalMinutes

        Dim MinhaData3 As DateTime = DateTime.Now
        Dim Interval As TimeSpan = TimeSpan.FromHours(3000)
        Dim MyDate2 As DateTime = MinhaData3 + Interval
        ' Subtracting one DateTime object from another produces a TimeSpan.
        Dim Diferença2 As TimeSpan
        Diferença2 = MyDate2 - MinhaData3

        ' tipo array
        Dim MeuArray1() As Integer = {1, 2, 3, 4, 5}
        Dim NumElementos1 As Integer
        NumElementos1 = MeuArray1.Length ' NumElementos1 = 5

        Dim MeuArray2() As Integer = {1, 2, 3, 4, 5}
        Dim NumElementos2 As Integer
        NumElementos2 = MeuArray2.GetUpperBound(0) ' NumElementos2 = 4

        'if
        Dim MeuNumero1 As Integer = 20
        If MeuNumero1 > 10 Then
            ' faz algo1.
        End If
        If MeuString2 = "hello" Then
            ' faz algo 2.
        End If

        'case
        Select Case MeuNumero1
            Case 1
                ' Faz alguma coisa se MeuNumero1 = 1.
            Case 2
                ' Faz alguma coisa se MeuNumero1 = 2.
            Case 3, 5
                ' Faz alguma coisa se MeuNumero1 = 2.
            Case Else
                ' Faz alguma coisa se MeuNumero1 for diferente de 1,2,3 e 5.
        End Select

        'loops - for
        Dim i As Integer
        For i = 1 To 10 Step 1
            ' Este código será executado 10 vezes.
            Debug.Write(i & " ")
        Next

        'loops - For Each
        Dim ArrayString1() As String = {"um", "dois", "tres"}
        For Each Elemento2 As String In ArrayString1
            ' Este código será executado 3 vezes
            Debug.Write(Elemento2 & " ")
        Next

        ' do loop
        Dim i2 As Integer = 0
        Do
            i2 += 1
            ' este código será executado 10 vezes.
        Loop While i2 < 10

        '(1)
        Numero1 = Numero1 + 1 ' erro...esta operação tem que ser feita dentro de uma sub ou func


        '(2)
        Elemento1 = ArrayInt2(2) ' Elemento agora tem o valor 3 ' erro...esta operação tem que ser feita dentro de uma sub ou func

        '(3)
        Elemento2 = ArrayInt3(0, 1) 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '(4)
        ReDim MeuArray(20, 20) 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '(5)
        ReDim Preserve MeuArray3(10, 20) 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '(6)
        ListaDinamica.Add("one") 'erro...esta operação tem que ser feita dentro de uma sub ou func
        ListaDinamica.Add("two") 'erro...esta operação tem que ser feita dentro de uma sub ou func
        ListaDinamica.Add("three") 'erro...esta operação tem que ser feita dentro de uma sub ou func
        Dim Item As String = CType(ListaDinamica(0), String)

        '(7)
        NewUserType = UserType.Admin 'erro...esta operação tem que ser feita dentro de uma sub ou func

        '(8)
        Numero = 4 + 2 * 3 'erro...esta operação tem que ser feita dentro de uma sub ou func
        Numero = (4 + 2) * 3 'erro...esta operação tem que ser feita dentro de uma sub ou func


    End Sub

    ' em .NET funções e subs são chamados de métodos
    Private Sub MinhaSub(ByVal void)
        ' Code goes here.
    End Sub

    Private Function MinhaFunc(ByVal void) As Integer
        ' Este método retorna um inteiro
        ' como exemplo irá retornar o valor 10.
        Return 10 'a function sempre termina num return value
    End Function

    Private Sub Chamadora(ByVal void)
        MinhaFunc(void)
    End Sub

    Private Function SomaNummeros(ByVal numero1 As Integer, ByVal numero2 As Integer) As Integer
        Return numero1 + numero2
    End Function

    Public Sub OperacoesComMatrizes()
        ' objeto array - unidimensional
        Dim MyArray() As Integer = {1, 2, 3, 4, 5} ' cria um array de 5 elementos de números inteiros e inicializa seu conteúdo
        Dim NumberOfElements As Integer
        NumberOfElements = MyArray.Length ' NumberOfElements terá o valor 5 - 5 elementos do array

        Dim Bound As Integer
        Bound = MyArray.GetUpperBound(0) ' Retorna 4 ( 5 elementos de 0 a 4 ) - Zero represents the first dimension of an array. - Bound = 4
        ' 0 é a primeira dimensão

        Bound = MyArray.GetLowerBound(0) ' Retorna 0- Bound = 0

        Array.Clear(MyArray, 0, MyArray.Length) ' limpa o array

        Bound = Array.IndexOf(MyArray, 5) ' Procura pelo elemento 5 no array e retorna o indice se encontrar        ' só para arrays unidimensionais

        ' objeto array - bidimensional
        Dim IntArray(,) As Integer = {{1, 2}, {3, 4}, {5, 6}, {7, 8}} ' Create a 4 x 2 array (a grid with four rows and two columns).
        Dim Rows, Columns As Integer
        Rows = IntArray.GetUpperBound(0) + 1 ' Rows = 4 - 0 é a primeira dimensão
        Columns = IntArray.GetUpperBound(1) + 1 ' Columns = 2 - 1 é a segunda dimensão

        Array.Sort(MyArray) ' ordena o array

        Array.Reverse(MyArray) ' inverte a ordem do array - o primeiro vira o último e vice-versa

        Dim a() As String = Split(",", "a", "b", "c")

    End Sub

End Module