Introdução à Programação C#
Classificado em Computação
Escrito em em português com um tamanho de 2,78 KB.
Enumeradores
Quais são as formas de definir um Enumerador numa classe?
Com propriedades e métodos.
Destrutores
O que é um Destrutor?
Destrutor (finalizers) é executado automaticamente pelo garbage collector quando o objeto já não é necessário. O programador pode definir uma implementação deste método para garantir o fecho de:
- Ligações às bases de dados
- Ficheiros abertos
- Objetos gráficos, etc.
Os destrutores apenas são executados quando o CLR entender.
Por que a utilização da implementação de um destrutor próprio deve ser evitada?
Porque o programador não tem garantia de quando o destrutor é chamado.
Métodos "dispose" e "close"
O que são os métodos “dispose” e “close”?
Métodos definidos e invocados pelo utilizador para libertar recursos na plataforma .NET:
- Close(): Definido em classes que representam uma ligação a um recurso, como ficheiros e bases de dados.
- Dispose(): Definido em classes que representam recursos transitórios, como uma janela no ecrã que deverá ser libertada quando já não é necessária.
Quando o programador já não necessitar dos objetos, deve invocar o método Dispose() ou Close() da respetiva classe.
Qual é a função da Interface “IDisposable”?
Classes que implementam esta interface garantem a execução do método Dispose() quando o objeto deixa de ser necessário.
LINQ
O que é a LINQ? Quais são as suas funcionalidades?
A LINQ (Language Integrated Query) é uma linguagem integrada de consulta que permite tratar de forma uniforme dados de diferentes origens (bases de dados e ficheiros XML).
Utiliza de forma integrada funcionalidades introduzidas na versão 3.0 da linguagem C#:
- Inferência automática de tipos
- Tipos anónimos
- Métodos de extensão
- Expressões lambda
- Expressões de consulta
É uma linguagem de programação orientada a objetos (manipulação de objetos) e armazenamento de dados (efetuado em fontes de dados externas, bases de dados relacionais e ficheiros XML).
Exemplo:
var alunoQuery = from aluno in alunos where aluno.id == id select new { aluno.nome, aluno.apelido, aluno.idade };
Resultado (alunoQuery): Conjunto de objetos contendo nome, apelido e idade dos alunos com um determinado identificador.
Independentemente da fonte de dados (alunos), seja uma tabela numa base de dados, dados num ficheiro XML ou uma simples tabela de objetos em memória, o sistema de execução LINQ permite tratar os dados de uma forma uniforme e transparente em C#.