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
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 3 deste tutorial.
No Visual C# você pode utilizar também parâmetros do tipo output. Esta característica não está disponível no Visual Basic .NET. Um parâmetro do tipo output é um parâmetro passado do método chamados para o método chamado que funciona de forma inversa aos parâmetros normais. Parâmetro do tipo output é útil quando você deseja que um método retorne mais de um resultado. Um parâmetro do tipo output é espeficicado utilizando a palavra chave out. Um parâmetro do tipo output é sempre passado por referência e não necessita ser inicializado antes do uso. O exemplo abaixo demonstra o uso de parâmetros do tipo output:
No exemplo acima o método ShowWord chama o método aWord utilizando o parâmetro Word. O método Word atribui um valor para o parâmetro do tipo output Word atribuindo assim também um valor para a variável Word.
Parâmetros opcionais
No Visual Basic .NET você especificar parâmetros opcionais para seus métodos. Esta característica não esta disponível no Visual C#. Você especifica um parâmetro opcional utilizando a palavra chave Optional. Parâmetros opcionais tem que ser obrigatoriamente os últimos parâmetros e devem ter um valor padrão definido. O exemplo abaixo demonstra a utilização de parâmetros opcionais.
Construtores e destruidores
O construtor é o primeiro método a ser chamado quando a instância do tipo/classe é executada. No Visual Basic .NET o construtor é sempre o Sub New. No Visual C# é o método com o mesmo nome da classe. Você usa um construtor para inicializar a classe e a estrutura de dados antes de usá-la. Construtores nunca retornam valor e podem ser sobrepostos para fornecer funcionalidades customizadas a inicialização. Um construtor também pode conter chamadas para outros métodos. Segue abaixo exemplos de construtores:
Similarmente ao construtor, o destruidor é o último método a ser executado quando se executa uma classe. O destruidor (conhecido como finalizador (finalizer) no Visual Basic) que vai “limpar” o ambiente quando a classe é destruída. Esta limpeza pode conter decremento de contadores e liberação de recursos. O destruidorno Visual Basic .NET é sempre o Sub Finalize() e o destruidor do Visual C# é o nome da classe precedido do til (~). Abaixo podemos ver exemplos de destruidores.
Como a garbage collection não pode ter sua execução prevista é impossível determinar quando o destruidor será chamado.
Escopo e nível de acessos
Modificadores de acesso dos membros
Os membros dos tipos tem modificadores controlam o seu escopo. A tabela abaixo mostra um resumo desses níveis de acesso.
Qualquer membro que utilize o modificador Public (public) é visível para todo código fora da classe. Desta forma todos os objetos podem acessar campos e métodos que utilizem o modificador público. De forma contrária ao modificador Public (public) os membros que utilizem o modificador Private (private) só podem ser vistos dentro do tipo que os criaram. O terceiro modificador de acesso, Friend (internal) indica membros que podem ser acessados por qualquer tipo que esteja no mesmo assembly do membro que o criou, mas não podem ser acessados pelos tipos que estão fora do assembly. O modificador Protected (protected) permite que o membro seja acessado por qualquer código dentro do tipo que o criou e por tipos que o herdem. Os modificadores Protected Friend (protected internal) proporcionam um nível de acesso que representa a união entro o modificador Protected (protected) e o modificador Friend (internal). Para membros que são variáveis os modificadores de acesso substituem o comando Dim. Se o comando Dim for usado (no Visual Basic .NET) ou nenhum modificador de acesso for usado (no Visual C#) a variável tem o mesmo escopo de variáveis que utilizam o modificador private no C# e nas classes do Visual Basic .NET, Public nas estruturas do Visual Basic .NET, private nas estruturas do C#. Métodos não necessitam de nenhum modificador. Se nenhum modificador de acesso for utilizado o método é Private (private) nas classes ou estruturas do C# e Public (public) em classes ou estruturas do Visual Basic .NET.
O exemplo abaixo demonstra como usar os modificadores de acesso e ilustra como eles controlam o acesso:
Modificadores de acesso de tipos
Estruturas e classes também podem ter modificadores. Modificadores de acesso de classes/estruturas controlam como a classe/estrutura deve ser instanciada e são similares a modificadores para membros. Um classe que utiliza um modificador Public (public) poder ser acessada por qualquer objeto dentro da aplicação. Um classe que utiliza o modificador Friend (internal) pode ser criada por qualquer outro membro do assembly mas não pode ser instanciada por objetos externos ao assembly. Uma classe que utilize o modificador Private (private) e Protected (protected) só podem ser instanciadas por tipos encadeados. Uma classe que utiliza o modificador Private (private) só pode ser instanciada por objetos dentro do seu próprio tipo ou por classes encadeadas. Classes encadeadas podem utilizar modificadores Protected (protected) ou Protected Friend (protected internal) que permitem que classes herdadas de sua classe mãe tenham acesso a elas. Modificadores Protected Friend (protected internal) são visíveis também por outros membros do namespace. Se nenhum modificador de acesso é especificado para uma classe ou estrutura ela é considerada Public (public).