NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalTutoriaisAlmirrivas : Dotnetframework003
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


Introdução ao .NET Framework – Parte 3

 

Objetivos:

 

Este parte do tutorial discute o .NET Framework e o Common Language Runtime. Também fornece introdução a sintaxe de classes, estruturas e declarações de métodos.

 

Pré-requisitos:

 

Ter estudado a parte 2 deste tutorial.

 

Usando classes e estruturas

 

Classes são modelos de objetos. Elas descrevem o tipo e a quantidade de dados que um objeto possui mas não representam uma instância em particular de um objeto. Um exemplo real de uma classe pode ser um “Carro”  - A idéia abstrata de um carro. Você sabe que um carro tem um motor, marchas, cor, média de consumo e mais uma dúzia  de outras propriedades. Embora a classe “Carro” possa descrever todas estas propriedades de um carro e mais as ações que ele pode realizar ela não representa um carro específico. Um carro que você vê na rua, em contrapartida, é um objeto. Ele tem um cor específica, um motor específico, um consumo específico e marchas específicas. Carros diferentes podem ter diferentes valores para cada uma destas propriedades mas todos são conhecidos por serem uma instância de uma classe “Carro”.

 

Membros

 

Classes descrevem propriedades e comportamentos de objetos que são representados por membros desta classe. Membros são métodos, campos, propriedades e eventos de uma classe em particular. Campos e propriedades representam dados sobre o objeto – a cor do carro, o consumo e o tipo de transmissão por exemplo. Métodos representam alguma coisa que o objeto possa fazer como acender os faróis. Eventos representam algo que possa ocorrer com o objeto como um acidente ou uma ultrapassagem.

 

Nota

 

Este tutorial discute campos e métodos mas a frente discutiremos sobre propriedades e eventos.

 

Criando classes

 

Você pode criar uma nova classe utilizando as palavras chaves Class (Visual Basic .NET) ou class (C#). Por exemplo:

 

Visual Basic .NET

 

Public Class Widget

    ‘ A implementação da classe ocorre aqui

End Class

 

C#

 

public class Widget

{

    // A implementação da classe ocorre aqui

}

 

Neste exemplo você utiliza a palavra chave Class (class) para criar uma classe definida pelo usuário. O nome da classe é Widget. A palavra chave Public (public) especifica o nível de acesso da classe. Níveis de acesso serão estudados mais a frente.

 

Criando estruturas

 

Criar estruturas é muito similar a criar classes. Você usa a palavra chave Structure (Visual Basic .NET) ou struct (C#). Por exemplo:

 

Visual Basic .NET

 

Public Structure Vector

    ‘ A implementação da estrutura ocorre aqui

End Structure

 

C#

 

public struct Vector

{

    // A implementação da estrutura ocorre aqui

}

 

Adicionando membros

 

No Visual Basic .NET a classe compreend tudo aquilo que esta entre as palavras chaves Class e End Class. No C# a classe compreende tudo aquilo que está entre colchetes ({}) logo após o nome da classe. Estruturas são similares. Tanto nas classes como nas estruturas você pode adicionar membros. O texto abaixo exemplifica isto:

 

Visual Basic .NET

 

Public Class Widget

    Public Spin As Integer

End Class

 

C#

 

public class Widget

{

    Public int Spin;

}

 

A nossa classe Widget contém um membro chamado Spin. Esta variável tem nível de acesso público e pode conter um valor inteiro. Mas a frente neste tutorial iremos discutir como adicionar métodos como membros de sua classe.

 

Classes aninhadas

 

Tipos podem conter outros tipos. Tipos que estão contidos dentro de outros tipos são chamados de tipos aninhados. Utilizando o exemplo de classes  uma classe aninhada é uma classe que a classe pai necessita criar e manipular e que ela não é necessária fora da classe pai. Um exemplo disso pode ser a classe “roda”.  A classe “roda” poderá criar e manipular a classe “raio” mas externamente talvez nunca seja preciso ter a classe “raio”. Um exemplo mais real pode ser a classe Gerente de Contas que pode controlar toda e qualquer iteração com o objetos Conta. Você pode querer não permitir que uma classe Conta seja criada independetemente de uma classe Gerente de Contas. Então a classe Conta é aninhada dentro da classe Gerente de Conta. Isto não significa que uma classe aninhada jamais será instânciada por um objeto que não derive de sua clase pai. Isto vai depender do nível de acesso dado a classe aninhada. A seguir temos exemplos de classes aninhadas.

 

Visual Basic .NET

 

Public Class Widget

    ‘ O código da classe Widget começa aqui

 

    Private Class Widgurt

        ‘  O código da classe Widgurt começa aqui

    End Class

End Class

 

C#

 

public class Widget

{

    \\ O código da classe Widget começa aqui

    public class Widgurt

    {

        \\  O código da classe Widgurt começa aqui

    }

            }

 

Instanciando tipos definidos pelo usuário

 

Você declara e instância um tipo definido pelo usuário da mesma forma como você declara e instância um tipo da .NET Framework Base Class Library. Para os dois tipos: Por referência (classes) e por valores (estruturas) você declara a variável com o tipo que deseja e depois instância o objeto utilizando a palavra chave New (new). Veja o exemplo a seguir:

 

Visual Basic .NET

 

Public Class Demo

   Public Structure ValueDemo

      Public X As Integer     

   End Structure

   Public Class RefDemo

      Public Y As Integer

   End Class

   Public Sub InstantiateTypes()

      ' This line declares a ValueDemo variable

      Dim DemoStructure As ValueDemo

      ' This line creates an instance of ValueDemo on the stack

      DemoStructure = New ValueDemo()

      ' The variable is ready to receive data.

      DemoStructure.X = 15

      ' This line declares a RefDemo variable, but doesn't

      ' create an instance of the class

      Dim DemoClass As RefDemo

      ' This line actually creates the object

      DemoClass = New RefDemo()

      ' And you can now assign value to its members

      DemoClass.Y = 15

   End Sub

End Class

 

C#

 

public class Demo

{

   public struct ValueDemo

   {

      public int X;

   }

   public class RefDemo

   {

      public int Y;

   }

   public void InstantiateTypes()

   {

      // This line declares a ValueDemo variable

      ValueDemo DemoStructure;

      // This line creates an instance of ValueDemo on the stack

       DemoStructure = new ValueDemo();

      // The variable is ready to receive data

      DemoStructure.X = 15;

      // This line declares a RefDemo variable, but doesn't create

      // an instance of the class

      RefDemo DemoClass;

      DemoClass = new RefDemo();

      // And you can now assign value to its members

      DemoClass.Y = 15;

   }

}

 

Classes versus estruturas

 

Superficialmente classes e estruturas parecem similar. Ambas contém membros como campos, e métodos, necessitam de um construtor para criar uma instância delas e como todos os tipos da .NET Framework Base Class Library ambas instanciam objetos. A chave da diferença entre as duas é que classes são tipos por referência e estruturas são tipos por valor. Vendo isto em um nível mais baixo podemos afirmar que os dados da classe são armazenados na área de memória chamada heap enquanto os dados de uma estrutura são armazenados em uma área de memória chamada stack. Armazenar dados na stack permite um acesso mais rápido e leve porém uma grande quantidade de dados na stack impacta na performance das aplicações.

 

Em termos práticos é melhor usar estruturas para objetos pequenos e leves que não duram por muito tempo. Classes devem ser usadas para objetos  com grande volume de dados  e que ficaram na memória por um longo período.

 

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI