|
DESCRIÇÃO
O C# é a linguagem de programação criada pela Microsoft e especialmente pensada para o desenvolvimento de aplicações na plataforma .NET. Esta linguagem e a sua plataforma associada prometem modificar radicalmente a forma como as aplicações são desenvolvidas para Windows, e também para a Internet. Aliando todo o poder do C++ com a facilidade de programação do Visual Basic, o C# é uma linguagem rápida e moderna, desenhada especificamente para aumentar a produtividade dos programadores.
Tendo sido originalmente publicado na colecção “Curso Completo”, esta nova edição trata a versão 2.0 da linguagem C#, cobrindo de forma profunda não só a linguagem como também as bibliotecas fundamentais da plataforma .NET.
Prefácio de: Manuel Costa, Microsoft Research
“Este é um livro que vai muito além de uma simples descrição das características da linguagem C#, para dar indicações práticas muito precisas sobre quais as formas mais correctas de construir bons programas nesta linguagem e quais as construções que devem ser evitadas. Além disso, o livro não se limita à linguagem C# e também aborda as principais bibliotecas da plataforma .NET, pelo que estou certo de que será extremamente útil a qualquer programador que desenvolva software para esta nova plataforma.”
PRINCIPAIS TÓPICOS
A obra aborda, entre outros, os seguintes assuntos:
- Programação orientada aos objectos em C#;
- Programação baseada em componentes;
- Tratamento de erros baseado em excepções;
- Classes base da plataforma .NET;
- Colecções de objectos;
- Ficheiros e streams;
- Serialização de objectos;
- Execução concorrente;
- Acesso à Internet;
- Desenvolvimento de web services.
PÚBLICO ALVO
- Este livro é destinado a todos os profissionais, investigadores e estudantes universitários que adoptem a linguagem C# para o desenvolvimento de aplicações.
O(S) AUTOR(ES)
Paulo Marques
Docente e investigador do Departamento de Engenharia Informática da Universidade de Coimbra. As suas principais áreas de interesse são os sistemas distribuídos e paralelos, o desenvolvimento de software baseado em componentes e as linguagens reflexivas. É responsável pelo sistema RAIL (Runtime Assembly Instrumentation Library), para instrumentação de código na plataforma .NET, desenvolvido com o apoio da Microsoft Research.
Hernâni Pedroso
Mestre em Engenharia Informática pela Universidade de Coimbra. Desenvolveu a sua actividade profissional principalmente na empresa Critical Software, S.A., em software para sistemas críticos. Foi um dos principais arquitectos do sistema WMPI (Windows Message Passing Interface). A sua investigação teve um enfoque especial nas áreas de sistemas distribuídos e paralelos, tolerância a falhas e computação de elevado desempenho.
ÍNDICE
1- Introdução 1
1.1 A plataforma .NET
1.2 Sobre este livro
2 - Elementos Básicos 7
2.1 Primeiro Programa
2.2 Um exemplo completo
2.3 Tipos de dados
2.3.1 Tipos elementares
2.3.2 O tipo lógico
2.3.3 Caracteres e cadeias de caracteres
2.4 Variáveis
2.5 Constantes
2.6 Expressões e operadores
2.7 Controlo de fluxo
2.7.1 Expressão if-else
2.7.2 Expressão switch
2.7.3 Expressões while e do-while
2.7.4 Expressão for
2.7.5 Expressão foreach
2.7.6 Quebra de ciclos
2.8 Tabelas
2.8.1 Tabelas simples
2.8.2 Tabelas multidimensionais
2.8.3 Tabelas dentro de tabelas
Parte I - A LINGUAGEM C#
3 - Conceitos de Orientação aos Objectos 45
3.1 Conceitos básicos
3.1.1 Encapsulamento de informação
3.1.2 Composição e herança
3.1.3 Polimorfismo
4 - Programação Orientada aos Objectos 57
4.1 O sistema de tipos do CLR
4.1.1 Referências
4.1.2 Boxing/Unboxing
4.2 Campos de uma classe
4.2.1 Níveis de acesso de membros
4.2.2 Níveis de acesso de topo
4.2.3 Constantes
4.2.4 Membros estáticos
4.3 Construtores
4.3.1 Inicialização por omissão
4.3.2 Utilização de vários construtores
4.3.3 Utilização genérica de this
4.3.4 Construtores estáticos
4.3.5 Inicialização directa de campos
4.4 Métodos simples
4.4.1 Visibilidade de variáveis
4.4.2 Overloading
4.4.3 Passagem de parâmetros
4.5 Redefinição de métodos
4.5.1 Overriding simples
4.5.2 Polimorfismo
4.5.3 Gestão de versões
4.5.4 Classes seladas
4.5.5 Classes abstractas
4.5.6 Modificadores de métodos
4.5.7 Interfaces
4.6 Conversão entre tipos
4.7 Estruturas
4.8 Enumerações
4.9 Tipos parcialmente definidos
4.10 Espaços de nomes
4.10.1 Aliases
5 - Excepções 119
5.1 Um primeiro exemplo
5.2 Estrutura genérica
5.3 Lançamento de excepções
5.4 Hierarquia de excepções
5.5 Excepções de aritmética
6 - Programação Baseada em Componentes 139
6.1 Propriedades
6.1.1 Propriedades indexadas
6.2 Eventos
6.2.1 Delegates
6.2.2 Multicast delegates
6.2.3 Métodos Anónimos
6.2.4 Sistema de eventos na plataforma .NET
6.2.5 Um exemplo utilizando Windows Forms
6.3 Atributos
6.3.1 Alvo dos atributos
6.3.2 Definição de novos atributos
6.3.3 Obtenção de atributos em tempo de execução
7 - Tópicos Avançados 173
7.1 Enumeradores e Iteradores
7.1.1 A interface IEnumerable
7.1.2 Iteradores
7.1.3 Enumeradores genéricos
7.2 Genéricos
7.2.1 Definição de tipos genéricos
7.2.2 Definição de métodos genéricos
7.3 Redefinição de operadores
7.3.1 Redefinição simples de operadores
7.3.2 Conversões definidas pelo utilizador
7.4 Tipos Anuláveis
7.4.1 Operador de aderência a nulo
7.5 Ponteiros
7.5.1 Sintaxe
7.5.2 Aritmética de ponteiros
7.5.3 Ponteiros e tabelas
7.5.4 Ponteiros para membros de classes
7.6 Métodos com número arbitrário de parâmetros
7.7 Destruição de objectos
7.7.1 Sintaxe
7.7.2 Dispose e Close
7.7.3 A interface IDisposable
7.8 Pré-Processamento
7.8.1 Directivas #define e #undef
7.8.2 Directivas #if, #elif, #else e #endif
7.8.3 Directivas #warning e #error
7.8.4 Directiva #line
7.8.5 Directivas #region e #endregion
7.9 Documentação em XML
Parte II - .NET ESSENCIAL
8 - Classes Base 233
8.1 A classe System.Object
8.1.1 Método ToString()
8.1.2 Comparação de objectos
8.1.3 Método MemberwiseClone()
8.2 Cadeias de caracteres
8.2.1 Leitura da consola
8.2.2 Conversões de valores
8.2.3 A classe System.String
8.2.4 A classe StringBuilder
8.2.5 Formatação de cadeias de caracteres
8.2.6 Expressões regulares
8.3 Colecções
8.3.1 A interface primordial: ICollection
8.3.2 Colecção List e ArrayList
8.3.3 Colecção LinkedList
8.3.4 Colecção BitArray
8.3.5 Colecção Dictionary e Hashtable
8.3.6 Colecção SortedDictionary
8.3.7 Colecção SortedList
8.3.8 Colecção Queue
8.3.9 Colecção Stack
8.3.10 Resumo das colecções
8.4 Ficheiros e streams
8.4.1 Gestão do sistema de ficheiros
8.4.2 Leitura e escrita de ficheiros
8.4.3 Serialização de objectos
9 - Execução Concorrente 313
9.1 Gestão de threads
9.1.1 Controlo de threads
9.1.2 A classe Thread
9.2 Sincronização
9.2.1 O problema da atomicidade
9.2.2 Secções críticas
9.2.3 A classe Mutex
9.2.4 Monitores
9.2.5 A classe Semaphore
9.2.6 Outros objectos de sincronização
10 - Acesso à Internet 351
10.1 Acesso a recursos na Internet
10.1.1 Classe WebClient
10.1.2 Classes WebRequest e WebResponse
10.1.3 Classes utilitárias
10.2 Web services
10.2.1 Criação de web services
10.2.2 Clientes de web services
10.2.3 Configuração e instalação
10.2.4 Informação disponível a um web service
10.3 Utilização do protocolo TCP/IP
10.3.1 Protocolo TCP
10.3.2 Protocolo UDP
11- Explorações Futuras 383
11.1 Interfaces de programação
11.2 Conclusão
Apêndice Convenções de Código387
Índice remissivo389
|