Arquivo da categoria: Estrutura da Linguagem

Conceitos Finais e Exemplo Prático – Structs: Estrutura da Linguagem – Parte 2

Olá pessoal, neste artigo veremos mais alguns conceitos e criaremos um exemplo prático com Structs. Acompanhem:

 Diferenças entre Classes e Structs – Apesar de serem muito parecidas sintaticamente, as classes e structs apresentam algumas diferenças, como descrito a seguir:

  • Uma struct não pode ser herdada de uma classe base, ao contrário de uma classe;
  • Em uma classe o compilador cria o construtor padrão no caso de não termos criado um construtor próprio. Já a struct não aceita a declaração de um construtor padrão, ou seja, um construtor que não tenha parâmetros. Isso porque o compilador sempre cria um construtor;
  • Usando struct não podemos inicializar campos de instância em seu ponto de declaração, o que é possível nas classes. Qualquer struct tem como regra inicializar todos os seus campos em todos os seus construtores;
  • A struct apresenta um construtor padrão (já mencionado anteriormente) criada pelo compilador, que sempre aplica os valores false, 0 ou null (dependendo do seu tipo) para os campos, como ocorre nas classes, mais os quais devemos tomar muito cuidado para que façam sentido e se comportem logicamente em relação ao valor da struct criado pelo construtor.

Falando especificamente da última diferença apresentada acima, podemos optar por não usar os valores padrões que o compilador atribui inicialmente. Neste caso, podemos criar um construtor que não é padrão se inicializarmos os campos com valores diferentes, considerando sempre que todos os campos em todos os construtores da struct devem ser inicializados de forma explícita, já que o compilador por si só não inicializará um campo no construtor.

Chega de conceitos e vamos à prática. Veja na Listagem 01 um exemplo do uso da Struct com datas, representando os campos dia, mês e ano:

Leia o resto deste post

Conceitos e Sintaxe – Structs: Estrutura da Linguagem – Parte 1

Olá pessoal, neste artigo veremos os principais conceitos das Structs. Acompanhem:

A carga para gerenciar o heap (pilha, local especial da memória) pode tornar-se desproporcional em situações nas quais uma classe possui uma quantidade muito pequena de dados. Se assim for, é aconselhável definir o tipo como estrutura ao invés de classe. Desta forma, a carga de gerenciamento de memória é reduzida frequentemente, já que as estruturas são armazenadas na pilha.

Dito isto, podemos afirmar que Structs é uma estrutura de um determinado tipo. No C#, os tipos numéricos primitivos float, long e int são apelidos de estruturas. O long, por exemplo, é um apelido para System.Int64.

Segundo a documentação do Visual Studio 2010, “é um tipo por valor que é normalmente usado para encapsular pequenos grupos de variáveis relacionadas, como características de uma pessoa, por exemplo.” (tradução livre). Ainda segundo a documentação, Structs podem conter construtores, constantes, campos, métodos, propriedades, indexadores, operadores, eventos e tipos aninhados.

É importante dizer que o uso de diversos operadores comuns em nossos próprios tipos de estrutura, por padrão, não é possível.

Leia o resto deste post

Conceitos e Exemplo Prático: Extensions Methods

Olá pessoal, neste artigo veremos os conceitos e exemplos práticos com os Extensions Methods. Acompanhem:  

Introdução – Os Extensions Methods (Métodos de Extensão), como o próprio nome diz, seriam uma extensão de uma determinada classe, em forma de método. Um exemplo disso seria um método que “estende” a classe String, um método personalizado que pega todas as letras E de uma palavra e faz determinada ação, ou mesmo um método que estende a classe Int32 ou a Decimal, pegando seus valores e os formatando como valores monetários, enfim temos vários exemplos.

Inicialmente comente o namespace System.Linq e instancie um objeto da classe ArrayList. Note que temos diversos métodos em sua classe, como mostra a Figura 01:

Figura 01 – Classe ArrayList sem Extensions Methods

 Agora descomente o System.Linq e chame novamente os métodos, veja na Figura 02:

Leia o resto deste post

Conceitos dos Generics e seus Tipos – Delegates, Events e Generics: Estrutura da Linguagem – Parte 3

Olá pessoal, neste artigo veremos os conceitos dos Generics e seus Tipos. Acompanhem:

 Introdução – Generic é uma maneira de criar parâmetros para classes e definir tipos que podem ser substituídos em vários lugares do programa. Isso elimina o uso da classe Object para definirmos tipos que podem variar no decorrer do programa.

Por exemplo, vamos imaginar uma classe com um método que possa receber uma string, int ou decimal como parâmetro. A única maneira de criar uma única função deste tipo seria criar uma que recebesse um Object, já que o Object pode ser de qualquer tipo. Na hora de recuperarmos o valor, o programa deveria fazer uma conversão correta em tempo de execução (operação chamada Cast) e, caso o tipo contido no retorno da função não fosse o correto, certamente teríamos um erro. Veja o exemplo a seguir:

Leia o resto deste post

Conceitos e Exemplos com os Eventos – Delegates, Events e Generics: Estrutura da Linguagem – Parte 2

Olá pessoal, neste artigo veremos os conceitos e exemplos dos Eventos da linguagem C#. Acompanhem:

 Introdução – Evento é uma mensagem que uma classe dispara em uma situação determinada. Como visto no artigo anterior, os eventos usam delegates para armazenar endereços de métodos.

Confira alguns exemplos práticos de uso com eventos:

  • Aplicação Web – Comunica ao aplicativo que algum acesso foi feito em uma aplicação;
  • Timer – Comunica a outros objetos sobre a expiração de um período de tempo;
  • Botão – Comunica a um objeto de formulário que alguém clicou no botão;
  • Domínio de Aplicação – Comunica a uma aplicação a respeito de um evento não-controlado.

Leia o resto deste post

Conceitos do Delegate e Métodos Anônimos – Delegates, Events e Generics: Estrutura da Linguagem – Parte 1

Olá pessoal, neste artigo veremos os conceitos e exemplos do Delegate e como invoca-lo. Veremos também os Métodos Anônimos da linguagem C#. Acompanhem:

 Introdução – O Delegate é um tipo de variável que guarda o endereço de um método. A principal utilidade dele é centrada no uso dos eventos. Em um determinado evento, uma classe dispara uma mensagem que será executada por um método em tempo de execução. O Delegate entra com a responsabilidade de guardar o endereço de memória onde se encontra este método.

As classes do Delegate oferecem uma interface pública que permite inicializar, adicionar, remover e invocar delegates.

Leia o resto deste post

Exemplos com Propriedades e Indexadores – Garbage Collector, Propriedades e Indexadores: Estrutura da Linguagem – Parte 3

Não me esqueci do site que disse que iria inaugurar pessoal! É que to na correria da faculdade com muitos trabalhos pra fazer, sem tempo pra fazer artigos, mais a partir de Julho será inaugurado e postado a novidade aqui no blog, fiquem de olho!

Olá pessoal, neste artigo veremos na terceira e última parte alguns exemplos com as Propriedades, descritas no artigo anterior, e veremos também os Indexadores. Acompanhem:

Voltando de onde paramos, veja o exemplo a seguir, que contém a propriedade que define um valor chamado PrecoDeVenda, que não pode ser negativo. Perceba que temos um campo privado, que internamente, irá armazenar o valor da propriedade em questão:

Leia o resto deste post

Método Dispose e Propriedades – Garbage Collector, Propriedades e Indexadores: Estrutura da Linguagem – Parte 2

Olá pessoal, neste artigo veremos os conceitos finais do Garbage Collector, como o método Dispose e a classe GC, e começaremos a ver as Propriedades. Acompanhem:

 Dispose – O método Dispose é uma convenção do .NET Framework para que as classes disponibilizem ao programador um meio de liberar a memória usada sem ter que esperar o Garbage Collector fazer isso.

O Dispose pode ser colocado como uma alternativa ao Destructor, onde o programador pode chama-lo a qualquer hora, e tem permissão para acessar tipos gerenciados sem restrições.

Leia o resto deste post

Conceitos e Exemplo do GC – Garbage Collector, Propriedades e Indexadores: Estrutura da Linguagem – Parte 1

Olá pessoal, neste artigo veremos os conceitos e um exemplo com o Destructor do GC (Garbage Collector) da linguagem C#. Acompanhem:

 Introdução – O GC, ou Garbage Collector (Coletor de Lixo), é um recurso responsável por desalocar quantidades de memória que não se encontram mais acessíveis em um programa.

Ele é um recurso capaz de oferecer uma solução automatizada ao gerenciamento de memória, elemento de extrema importância em determinados tipos de aplicativos. Geralmente, os programas realizam a leitura dos dados e executam algumas tarefas com eles, gravando-os logo em seguida em um banco de dados.

Leia o resto deste post

Classes Stack, Queue e HashTable – Coleções: Estrutura da Linguagem – Parte 3

Olá pessoal, neste artigo veremos conceitos e exemplos com as classes Stack, Queue e HashTable. Acompanhem:

 Stack – Esta classe permite a inclusão de elementos que são colocados em uma pilha. O elemento junta-se à pilha no topo e sai dela também a partir do topo. A Stack usa o sistema LIFO (last-in first-out), ou seja, “último a entrar, primeiro a sair”. Seus principais métodos são:

  • Push – Coloca um item na pilha;
  • Pop – Retira o último item da pilha e retorna uma referência a este objeto;
  • Peek – Retorna o objeto que está no topo da pilha.

Leia o resto deste post

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 934 outros seguidores

%d blogueiros gostam disto: