Guia do Programador Joel Saade



Documentos relacionados
Guia do Programador Joel Saade

Criando Relatórios com PHP

Criando Aplicações Gráficas com PHP

Desenvolvendo Websites com PHP

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Edgar Gomes de Abreu

André Gugliotti. Novatec

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Paulo Strelczuk. Novatec

PDF Explicado John Whitington

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

2ª EDIÇÃO. André Milani. Novatec

Parte I Princípios básicos do Microsoft.NET Framework

Criando Relatórios com PHP Pablo Dall Oglio

Service Desk Corporativo

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

MARKETING DIGITAL NA ERA. Martha Gabriel CONCEITOS, PLATAFORMAS E ESTRATÉGIAS. Novatec

Desenvolvendo para. Windows 8. Aprenda a desenvolver aplicativos para Windows Phone 8 e Windows 8. Ricardo R. Lecheta. Novatec

Harrison Kinsley Will McGugan

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Desenvolvimento de Grandes Aplicações Web

JQuery. A Biblioteca do Programador JavaScript. 3ª Edição Revisada e ampliada. Maurício Samy Silva. Novatec

Design Centrado no Usuário

Guia de Consulta Rápida. Joel Saade. Novatec

Wilson Moraes Góes. Novatec

jquery Cookbook Comunidade de Desenvolvedores jquery

Luiz Carlos Querino Filho

Computação II Orientação a Objetos

como acabar com sua em apenas 140 caracteres Carolina Lima Novatec

Google Analytics Justin Cutroni

Primeiros Passos com o Raspberry Pi

David Hows Peter Membrey Eelco Plugge

Programação Java. com Ênfase em Orientação a Objetos. Douglas Rocha Mendes. Novatec

Novatec Editora Ltda. [2014].

Jonathan Stark Brian Jepson

Estrutura de Dados Básica

João Eriberto Mota Filho

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Julia Elman e Mark Lavin. Novatec

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Hélio Engholm Jr. Novatec

PHP Programando com Orientação a Objetos

Aprendendo Programação. ios. Alasdair Allan. Novatec

3 Classes e instanciação de objectos (em Java)

Novatec Editora Ltda

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

ÍNDICE. Introdução 19

2ª Edição Alexandre Keller

Wilson Moraes Góes. Novatec

Desenvolvendo Websites com PHP

Copyright 2008, 2013 da Novatec Editora Ltda.

Murillo Lo Visco. Novatec

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Adrian Mejia. Novatec

Ademir C. Gabardo. Novatec

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

GRUPO: Igor de Oliveira Nunes Mateus Tassinari Ferreira Renan Sarcinelli

Conrado Adolpho. Novatec

Crie Seu Próprio Site

4ª Edição Pablo Dall Oglio

BC0505 Processamento da Informação

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Editor: Rubens Prates Revisão gramatical: Patrizia Zagni Capa: Victor Bittow Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata

Ricardo Kléber M. Galvão. Novatec

Escrito por Neri Neitzke Qui, 13 de Outubro de :52 - Última atualização Seg, 26 de Março de :48

UML 2 uma abordagem prática Gilleanes T. A. Guedes

Ricardo R. Lecheta. Novatec

Apostila C# Conceitos Básicos. Universidade Tecnológica Federal do Paraná. Diogo Cezar Teixera Batista. 20 de novembro de 2008

Como melhorar a performance de websites.net

Sumário. Parte I Filosofia e Modelagem Orientada a Objetos... 23

Desenvolvendo Websites com PHP

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Josh Pauli Revisão técnica Scott White. Novatec

Camila Porto. Novatec

VÍTOR PEREIRA Portugal/2010

Google Android para Tablets

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Osvaldo Santana Thiago Galesi

CAPÍTULO 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO C

Pramod J. Sadalage Martin Fowler

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Prof. Jhonatan Fernando

WordPress 3 Básico Stephanie Leary

Algoritmos e Técnicas de

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva

Linguagens de Programação

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. 2a Edição. Samuel Henrique Bucke Brito. Novatec

Guia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora

Ricardo Lino Olonca. Novatec

Trabalho Prático Nº1 Introdução ao C#.NET

Transcrição:

C# Guia do Programador Joel Saade Novatec

Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata Revisão gramatical: Gabriela de Andrade Fazioni Capa: Victor Bittow ISBN: 978-85-7522-253-9 Histórico de impressões: Janeiro/2011 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Saade, Joel C# : guia do programador / Joel Saade. -- São Paulo : Novatec Editora, 2010. Bibliografia. ISBN 978-85-7522-253-9 1. C# (Linguagem de programação para computadores) 2. Microsoft Visual C# I. Título. 10-11327 CDD-005.133 Índices para catálogo sistemático: 1. C# : Linguagem de programação : Computadores : Processamento de dados 005.133 CRM20110117

Sumário Introdução...13 Sobre C#...15 Capítulo 1 Primeiros passos...16 Estrutura básica de um programa C#...16 Capítulo 2 Elementos da linguagem...20 Identificadores...20 Variáveis...20 Variáveis locais tipadas implicitamente... 21 Escopo e existência de variáveis...22 Tipos de dados...23 Tipos value predefinidos...24 Conversões de tipos em atribuições...26 Type cast...27 Conversões numéricas explícitas...29 Tipos reference predefinidos...29 Tipos nullable... 31 Constante string verbatim...32 Comparação de strings...33 Concatenação de strings...33 Constantes...34 Numéricas...34 Simbólicas...34 Sequências de escape...35 Operadores...36 Operador de atribuição...36 Operadores aritméticos...37 Operadores unários e binários...39 Operador condicional ternário...39 Operadores bitwise...39 Lógicos (booleanos e bitwise)... 41 Bitwise de atribuição... 44 Lógicos short-circuit... 44 Relacionais...45 Precedência e associatividade de operadores... 46 5

6 C# Guia do Programador Capítulo 3 Estruturas de decisão e iteração...47 Bloco de comandos...47 Comando vazio...47 Estruturas de decisão...48 Estruturas de iteração...53 Capítulo 4 Arrays...63 O que é array...63 Arrays unidimensionais...63 Arrays unidimensionais tipados...65 Arrays multidimensionais...65 Arrays bidimensionais...65 Arrays tridimensionais...67 Arrays irregulares (jagged)...69 Array de strings...72 Array de caracteres...74 Atribuição de variáveis de referência a arrays...76 Manipulação de arrays... 77 Métodos...78 Propriedades...104 Capítulo 5 Tipos value definidos pelo usuário...106 Enumeração...106 Estrutura...109 Atribuição de estruturas...112 Array de estruturas...113 Estruturas aninhadas...114 Estruturas como valor de retorno...115 Estruturas tipadas...115 Capítulo 6 Classes...117 O que é classe...117 Estrutura de uma classe...117 Modificadores de classes...118 Modificadores de campos e métodos...118 Objetos... 120 Atribuição a variáveis do tipo reference...121 Construtor de classes... 122 Construtor com parâmetros... 123 Sobrecarga de construtores... 123 Construtor static... 125 Inicializadores de objetos... 126 Destrutor de classes... 127 Classes static... 128 Classes parciais... 129 Referência this... 132 Chamada a construtores sobrecarregados por meio da referência this... 134

Sumário 7 Herança de classes... 135 Cadeia de herança... 137 Membros protected... 139 Herança e construtores... 139 Construtor da classe-base...141 Ocultação de membros... 142 Acesso a um membro oculto... 143 Ordem de execução dos construtores... 143 Referências a classes-base e objetos de classes derivadas... 144 Métodos virtuais... 146 Chamada a métodos virtuais de uma classe-base... 150 Classes abstratas e métodos abstratos...151 Classes sealed... 153 Capítulo 7 Métodos...154 O que é método... 154 Passagem de argumentos... 155 Passagem por valor... 155 Passagem por referência...156 Argumentos nomeados... 157 Argumentos opcionais... 158 Comando return... 159 Parâmetro out...160 Parâmetro params... 162 Passagem de arrays... 163 Passagem de strings...164 Passagem de referências... 165 Retorno de objetos...166 Retorno de arrays... 167 Sobrecarga de métodos...168 Métodos recursivos... 169 Métodos static e campos static...171 Campos static... 172 Capítulo 8 Generics...174 O que é Generics...174 Métodos genéricos...174 Classes genéricas... 177 Classes genéricas com mais de um tipo genérico... 179 Estruturas genéricas... 180 Capítulo 9 Indexadores e propriedades...182 Indexadores... 182 Propriedades... 184 Capítulo 10 Interfaces e delegates...186 Interfaces... 186 Implementação de interfaces... 187

8 C# Guia do Programador Herança de interfaces... 189 Delegates... 190 Delegate method group conversion... 192 Delegates e métodos de instância... 192 Delegates para métodos anônimos... 193 Multicasting... 196 Capítulo 11 Sobrecarga de operadores...198 O que é sobrecarga de operadores... 198 Sobrecarga de operadores unários... 198 Sobrecarga de operadores binários... 199 Sobrecarga de operadores relacionais... 201 Sobrecarga de true e false...203 Capítulo 12 Passagem de argumentos a um programa...206 Método Main()...206 Mais de um método Main()... 212 Capítulo 13 Exceções...214 O que é exceção...214 O mecanismo de exceções...214 Blocos try e catch...214 Múltiplos blocos catch...217 Captura de qualquer exceção...217 Blocos try aninhados... 218 Bloco finally... 219 Disparo de exceções...220 Classes de exceção do usuário... 221 Operadores checked e unchecked...223 Capítulo 14 Formatação de valores e manipulação de data e hora...225 Formatação de valores numéricos...225 Formatação com os métodos Write() e WriteLine()...226 Formatação com o método ToString()...228 Formatação personalizada de valores...229 Data e hora... 233 Objetos DateTime... 233 Formatação padrão de data e hora...241 Formatação personalizada de data e hora... 243 Capítulo 15 Namespaces...246 Namespace...246 Declaração de namespaces...246 A diretiva using...248 Namespaces aninhados... 249 Namespaces com mesmo nome...250 Qualificador ::...251

Sumário 9 Capítulo 16 Explorando o namespace System...253 O namespace System... 253 Estruturas dos tipos value predefinidos... 253 Estrutura Boolean...254 Estrutura Char...256 Estrutura Byte...265 Estrutura Int16... 267 Estrutura Int32...269 Estrutura Int64...272 Estrutura SByte... 274 Estrutura UInt16...276 Estrutura UInt32...279 Estrutura UInt64... 281 Estrutura Decimal...283 Estrutura Double... 291 Estrutura Single...295 Classe Environment...299 Métodos...299 Propriedades...303 Classe Math...306 Campos...306 Métodos...306 Classe Random...313 Construtores...313 Métodos...314 Classe String...317 Campos...317 Propriedades...318 Construtores...319 Métodos...319 Capítulo 17 Objetos StringBuilder...339 String versus StringBuilder... 339 Construtores... 339 Métodos...342 Propriedades...351 Capítulo 18 Modo unsafe...353 Modo seguro versus modo unsafe... 353 Ponteiros... 353 Declaração de ponteiros... 353 Operador de endereço... 354 Operador de de-referência... 354 Acesso a membros de estruturas com ponteiros... 357 Comando fixed... 358 Aritmética de ponteiros e arrays...360 Indexação de ponteiros...362

10 C# Guia do Programador Ponteiros e strings...364 Operador sizeof...365 Comando stackalloc...366 Capítulo 19 Coleções...369 Coleções genéricas...369 Coleção Dictionary<TK,TV>...369 Coleção LinkedList<T>...377 Coleção List<T>...387 Coleção Queue<T>...414 Coleção SortedDictionary<TK,TV>... 418 Coleção SortedList<TK,TV>...428 Coleção Stack<T>...436 Coleções não genéricas...440 Coleção ArrayList... 441 Coleção Hashtable...465 Coleção Queue... 475 Coleção SortedList...480 Coleção Stack...493 Armazenagem de classes/estruturas em coleções...498 Inicializadores de coleções... 501 Capítulo 20 Criação de DLLs: modo console...505 O que é DLL...505 Capítulo 21 Criação de componentes...512 O que é componente...512 O modelo de componente...512 O que é um componente C#...512 Capítulo 22 Diretórios, drives e arquivos...516 Manipulação de diretórios e drives... 516 Classe Directory... 516 Classe DirectoryInfo... 527 Classe DriveInfo...536 Operações de entrada/saída via console... 539 Métodos... 539 Propriedades...549 Redirecionamento de entrada/saída...550 Manipulação de arquivos... 553 Byte streams e character streams... 553 Entrada/saída em arquivos orientada a byte... 553 Entrada/saída em arquivos baseada em caractere... 554 Classe FileStream... 554 Classe TextReader... 559 Classe TextWriter... 561 Classe BinaryWriter...563

Sumário 11 Classe BinaryReader...565 Classe File...569 Classe FileInfo... 579 Capítulo 23 Aplicações gráficas...589 Primeira aplicação...589 Exibição de message boxes... 593 Reprodução de sons... 597 Classe SoundPlayer... 597 Classe SystemSound...599 Classe SystemSounds...599 Menus...600 Controle ListBox...603 Fontes e cores...607 Controle TrackBar...609 Linhas e formas geométricas... 612 Chamada a programas... 616 Exibição de imagens... 618 Múltiplos Forms...620 Clipboard...626 Métodos...626 Barra de ferramentas controle ToolStrip...627 Impressão de arquivos... 632 Criação de DLLs: modo gráfico...636 Exibição de páginas Web...640 Capítulo 24 Banco de dados...643 Visão geral sobre o ADO.NET...643 Namespaces...644 Provedores de dados...644 Objeto DataSet...647 Data commands... 657 Métodos e propriedades do objeto DataReader... 661 DataSets e DataAdapters...665 DataSet e arquivos XML... 672 Vinculação de dados (Data binding)... 674 Apêndice A Precedência de operadores...680 Apêndice B Tipos de dados do T-SQL...681 Bibliografia...682 Índice remissivo...683