Tải bản đầy đủ (.pdf) (621 trang)

Microsoft Visual C# 2005: Passo a Passo ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (12.97 MB, 621 trang )

Visual C# 2005 Passo à Passo (2006)
1


Visual C# 2005
Passo à Passo

de John Sharp
Visual C# 2005 Passo à Passo (2006)
2
Índice
INTRODUÇÃO 11
PARTE I – INTRODUÇÃO AO VISUAL C# E AO VISUAL STUDIO 2005 12
CAPÍTULO 1 – BEM VINDO AO C# 13
COMEÇANDO A PROGRAMAR COM O AMBIENTE VISUAL STUDIO 2005 14
Crie uma aplicação de console no Visual Studio 2005 14
ESCREVENDO SEU PRIMEIRO PROGRAMA 18
Escreva o código usando a tecnologia do IntelliSense 19
Construa e rode uma aplicação console 22
USANDO NAMESPACES 25
Tente nomes comuns 26
CRIANDO UMA APLICAÇÃO WINDOWS 28
Crie um Projeto Windows no Visual Studio 2005 28
Crie a interface do usuário 29
Escreva o código para o botão OK 36
Rode o programa Windows 36
CAPÍTULO 1 RÁPIDA REFERÊNCIA 37
CAPÍTULO 2 - TRABALHANDO COM VARIÁVEIS, OPERADORES E EXPRESSÕES 39
ENTENDENDO AS DECLARAÇÕES 39
USANDO IDENTIFICADORES 40
IDENTIFICANDO AS PALAVRAS CHAVES 41


USANDO VARIÁVEIS 41
Nomeando as Variáveis 42
Declarando Variáveis 43
TRABALHANDO COM TIPOS DE DADOS PRIMITIVOS 43
Não Assinalando Variáveis Locais 44
Mostrando Valores de Tipos de Dados Primitivos 44
Use os tipos de dados primitivos em código 46
USANDO OPERADORES ARITMÉTICOS 49
Determinando os Valores de um Operador 50
Examinando os Operadores Aritméticos 51
O trabalho com operadores aritméticos 51
Examine o código do programa MathsOperators 52
A propriedade Text e o método ToString 54
Controlando a Precedência 55
Usando a Associatividade para Avaliar as Expressões 56
INCREMENTANDO E DECREMENTANDO VARIÁVEIS 56
Prefixo e Pós-fixo 57
CAPÍTULO 2 RÁPIDA REFERÊNCIA 58
CAPÍTULO 3 - ESCREVENDO MÉTODOS E APLICANDO ESCOPO 60
DECLARANDO MÉTODOS 60
Especificando a Sintaxe da Declaração do Método 61
Escrevendo as Declarações return 62
Examine as definições dos métodos 63
CHAMANDO MÉTODOS 65
Especificando a Sintaxe da Chamada de Método 65
Examine a chamada à método 66
APLICANDO O ESCOPO 67
Definindo um Escopo Local 68
Definindo o Escopo da Classe 69
Sobrecarregando Métodos 69

ESCREVENDO MÉTODOS 71
Desenvolva a lógica da aplicação 71
Escreva os métodos usando o Generate Method Stub Wizard 72
Refatoração de Código 75
Teste o programa 75
Pise dentro dos métodos usando o Depurador do Visual Studio 2005 76
Visual C# 2005 Passo à Passo (2006)
3
CAPÍTULO 3 - RÁPIDA REFERÊNCIA 79
CHAPTER 4 - USING DECISION STATEMENTS 81
DECLARING BOOL VARIABLES 81
USING BOOLEAN OPERATORS 82
Understanding Equality and Relational Operators 82
Understanding Conditional Logical Operators 83
Summarizing Operator Precedence and Associativity 84
USING IF STATEMENTS TO MAKE DECISIONS 85
Understanding if Statement Syntax 85
Using Blocks to Group Statements 86
Cascading if Statements 87
Write if statements 87
USING SWITCH STATEMENTS 91
Understanding switch Statement Syntax 91
Following the switch Statement Rules 92
Write switch statements 93
CHAPTER 4 QUICK REFERENCE 95
CHAPTER 5 - USING COMPOUND ASSIGNMENT AND ITERATION
STATEMENTS 97

USING COMPOUND ASSIGNMENT OPERATORS 97
WRITING WHILE STATEMENTS 98

Write a while statement 99
WRITING FOR STATEMENTS 103
Understanding for Statement Scope 104
WRITING DO STATEMENTS 105
Write a do statement 106
Step through the do statement 109
CHAPTER 5 QUICK REFERENCE 112
CAPÍTULO 6 - GERENCIANDO ERROS E EXCEÇÕES 114
COPIANDO COM ERROS 115
TENTANDO CÓDIGO E CAPTURA DE EXCEÇÕES 116
Manipulando uma Exceção 117
Exceções Não Manipuladas 117
Usando Múltiplos Manipuladores catch 119
Pegandos Múltiplas Exceções 120
Escreva uma declaração try/catch 121
USANDO CÁLCULO CHECKED E UNCHECKED DE INTEIRO 125
Escrevendo Declarações checked 126
Escrevendo Expressões checked 127
Use as expressões checked 128
LANÇANDO EXCEÇÕES 129
Lance sua própria exceção 131
Capture sua própria exceção 133
USANDO UM BLOCO FINALLY 135
CAPÍTULO 6 - RÁPIDA REFERÊNCIA 137
PARTE II - ENTENDENDO A LINGUAGEM C# 139
CAPÍTULO 7 - CRIANDO E GERENCIANDO CLASSES E OBJETOS 140
ENTEDENDO A CLASSIFICAÇÃO 141
O PROPÓSITO DO ENCAPSULAMENTO 141
DEFININDO E USANDO UMA CLASSE 142
CONTROLANDO A ACESSIBILIDADE 143

TRABALHANDO COM CONSTRUTORES 145
Sobrecarregando Construtores 146
Classes Parciais 147
Escreva construtores e crie objetos 148
Escreva e chame métodos de instância 153
ENTENDENDO OS MÉTODOS E DADOS ESTÁTICOS 155
Visual C# 2005 Passo à Passo (2006)
4
Criando um Campo Compartilhado 156
Criando um Campo static com a Palavra Chave const 157
Classes Estáticas 157
Escreva para os membros e chame os métodos estáticos 158
CAPÍTULO 7 - RÁPIDA REFERÊNCIA 161
CAPÍTULO 8 – ENTENDENDO VALORES E REFERÊNCIAS 164
COPIANDO VARIÁVEIS INT E CLASSES 164
Use parâmetros de valor e parâmetros de referência 166
USANDO OS PARÂMETROS REF E OUT 170
Criando Parâmetros ref 171
Criando Parâmetros out 172
Use os parâmetros ref 173
COMO É ORGANIZADA A MEMÓRIA DO COMPUTADOR 175
Usando a Stack e a Heap 176
A CLASSE SYSTEM.OBJECT 177
O BOXING 178
O UNBOXING 179
Os Ponteiros e o Código Inseguro 182
CAPÍTULO 8 - RÁPIDA REFERÊNCIA 184
CAPÍTULO 9 - CRIANDO TIPOS VALOR COM ENUMERAÇÕES E STRUCTS 186
TRABALHANDO COM ENUMERAÇÕES 186
Declarando um tipo enumeração 187

Usando uma Enumeração 187
Escolhendo Valores Literais de Enumeração 188
Escolhendo um Tipo Subjacente da Enumeração 189
Crie e use um tipo enumeração 190
TRABALHANDO COM TIPOS ESTRUTURA 192
Declarando o Tipo Estrutura 194
Entendendo Estrutura e as Diferenças para a Classe 195
Declarando Variáveis de Estruturas 197
Entendendo a Inicialização da Estrutura 198
Copiando Variáveis de Estruturas 200
Crie e use um tipo struct 201
CAPÍTULO 9 - RÁPIDA REFERÊNCIA 204
CHAPTER 10 - USING ARRAYS AND COLLECTIONS 207
WHAT IS AN ARRAY? 207
Declaring Array Variables 207
Creating Array Instances 208
Initializing Array Variables 209
Accessing Individual Array Elements 210
Iterating Through an Array 210
Copying Arrays 211
WHAT ARE COLLECTION CLASSES? 213
The ArrayList Class 214
The Queue Class 216
The Stack Class 217
The Hashtable Class 218
The SortedList Class 219
Comparing Arrays and Collections 220
Using Collection Classes to Play Cards 220
Deal the cards 220
Shuffle the pack 221

Return the cards to the pack 224
CHAPTER 10 QUICK REFERENCE 225
CAPÍTULO 11 - ENTENDENDO ARRAYS DE PARÂMETROS 227
USING ARRAY ARGUMENTS 228
Declaring params Arrays 229
Using params object[ ] 232
Using params Arrays 233
Visual C# 2005 Passo à Passo (2006)
5
Write a params array method 233
Test the Util.Sum method 235
CHAPTER 11 QUICK REFERENCE 236
CAPÍTULO 12 - TRABALHANDO COM A HERANÇA 238
O QUE É A HERANÇA? 239
USANDO A HERANÇA 239
Classes Base e Classes Derivadas 239
Chamando a o Construtor da Classe Base 241
Assinalando Classes 243
new Métodos 244
Métodos Virtuais 245
Métodos Virtuais e o Polimorfismo 247
Os Métodos Sobrescritos 249
Acesso protected 250
CRIANDO INTERFACES 251
A Sintaxe da Interface 252
Restrições das Interfaces 252
Implementando uma Interface 253
Referenciando uma Classe Por Sua Interface 255
Trabalhando com Múltiplas Interfaces 256
CLASSES ABSTRATAS 256

CLASSES SELADAS 259
Métodos Selados 260
ESTENDENDO UMA HIERARQUIA DE HERANÇA 260
Entenda a hierarquia da herança e seu propósito 261
Escreva a classe ColorSyntaxVisitor 264
SUMARIZANDO AS COMBINAÇÕES DAS PALAVRTAS CHAVES 269
CAPÍTULO 12 - RÁPIDA REFERÊNCIA 270
CAPÍTULO 13 – USANDO O GARBAGE COLLECTION E O GERENCIAMENTO DE
RECURSOS 272
A VIDA E A DURAÇÃO DE UM OBJETO 272
Escrevendo Destrutores 274
Por que Usar o Garbage Collection? 275
Como o Garbage Collection Funciona? 277
Recomendações 278
ADMINISTRAÇÃO DE RECURSOS 278
O Método Disposal 278
Disposição de Exceção Segura 279
A Declaração using 280
Chamando o método Dispose de um Destrutor 282
TORNANDO O CÓDIGO UMA EXCEÇÃO SEGURA 284
Escreva uma declaração using 284
CAPÍTULO 13 - RÁPIDA REFERÊNCIA 286
PARTE III - CRIANDO COMPONENTES 289
CAPÍTULO 14 - IMPLEMENTANDO PROPRIEDADES PARA ACESSAR ATRIBUTOS 290
COMPARANDO OS CAMPOS E OS MÉTODOS 291
O QUE SÃO PROPRIEDADES? 293
Usando as Propriedades 295
Propriedades de Somente Leitura 296
Propriedades de Somente Escrita 296
Acessibilidade da Propriedade 297

ENTENDENDO AS RESTRIÇÕES DAS PROPRIEDADES 298
Usando Adequadamente as Propriedades 299
DECLARANDO PROPRIEDADES DE INTERFACE 300
Usando Propriedades em uma Aplicação Windows 301
O Uso das propriedades 302
CAPÍTULO 14 - RÁPIDA REFERÊNCIA 306
CAPÍTULO 15 - USANDO INDEXADORES 308
Visual C# 2005 Passo à Passo (2006)
6
O QUE É UM INDEXADOR? 308
Um Exemplo Que não Usa indexadores 308
Os operadores Bitwise e Shift 309
O Mesmo Exemplo Usando indexadores 310
Endentendo os Acessores Indexadores 313
Comparando Indexadore e Arrays 313
OS INDEXADORES NAS INTERFACES 316
USANDO INDEXADORES EM UMA WINDOWS APPLICATION 317
Familiarize-se com a aplicação 317
Escreva os indexadores 319
Chame os indexadores 321
Rode a aplicação 322
CAPÍTULO 15 - RÁPIDA REFERÊNCIA 323
CAPÍTULO 16 - DELEGADOS E EVENTOS 326
DECLARANDO E USANDO OS DELEGADOS 327
O CENÁRIO DA FÁBRICA DE AUTOMAÇÃO 327
Implementando a Fábrica sem o Uso de Delegados 328
Implementando a Fábrica pelo Usi de um Delegado 328
USANDO DELEGADOS 332
Termine a aplicação do relógio digital 332
OS MÉTODOS ANÔNIMOS E OS DELEGADOS 335

Criando um Adaptador de Método 335
Usando um Método Anônimo como um Adaptador 336
Características dos Métodos Anônimos 337
PERMITINDO NOTIFICAÇÕES COM EVENTOS 337
DECLARANDO UM EVENTO 338
SUBSCREVENDO A UM EVENTO 339
TIRANDO A SUBSCRIÇÃO DE UM EVENTO 339
DISPARANDO UM EVENTO 340
ENTENDENDO OS EVENTOS DA GUI 340
USANDO EVENTOS 342
Refaça a aplicação do relógio digital 343
CAPÍTULO 16 - RÁPIDA REFERÊNCIA 346
CAPÍTULO 17 – INTRODUZINDO OS GENÉRICOS 349
O PROBLEMA COM OS OBJECTS 349
A SOLUÇÃO GENÉRICA 351
Genéricos vs. Classes Generalizadas 354
Os Genéricos e as Restrições 355
CRIAÇÃO DE UMA CLASSE GENÉRICA 355
A Teoria da Árvore Binária 355
Construindo uma Classe Tree Binária que Usa Genéricos 359
Crie a classe Tree<T> 362
Teste a classe Tree<T> 366
CRIANDO UM MÉTODO GENÉRICO 369
Definindo um Método Genérico para Construir uma árvore Binária 370
Escreva o método BuildTree 370
Teste o método BuildTree 372
CAPÍTULO 17 - RÁPIDA REFERÊNCIA 372
CAPÍTULO 18 - ENUMERANDO COLEÇÕES 374
ENUMERANDO OS ELEMENTOS NA COLEÇÃO 374
Implementando um Enumerador Manualmente 376

Crie a classe TreeEnumerator 376
Implementando a Interface IEnumerable 381
Implemente a interface IEnumerable<T> na classe Tree<T> 381
Teste o enumerador 382
IMPLEMENTANDO UM ENUMERADOR USANDO UM ITERATOR 383
Um Simples Iterator 383
Definindo um Enumerador para a Class Tree<T> Usando um Iterator 385
Adicione um enumerador à classe Tree<T> 386
Teste o novo enumerador 387
Visual C# 2005 Passo à Passo (2006)
7
CAPÍTULO 18 - RÁPIUDA REFERÊNCIA 388
CAPÍTULO 19 – SOBRECARGA DE OPERADORES 390
ENTENDENDO OS OPERADORES 390
Limitações dos Operadores 391
Sobrecarga de Operadores 392
Criando Operadores Simétricos 394
Os operadores e a Common Language Specification 396
ENTENDENDO A ASSINALAÇÃO DE COMBINAÇÃO 396
DECLARANDO OPERADORES DE INCREMENTO E DECREMENTO 397
Operadores em Structs e Classes 398
DEFININDO PARES DE OPERADORES 399
IMPLEMENTANDO UM OPERADOR 400
Escreva as sobrecargas do operator+ 401
ENTENDENDO OS OPERADORES DE CONVERSÃO 403
Fornecendo Conversões Embutidas 404
Implementando Operadores de Conversão definidos pelo usuário 405
Criando Operadores Simétricos Revisados 406
Adicionando um Operador de Conversão Implícito 407
Escreva o operador de conversão 407

CAPÍTULO 19 - RÁPIDA REFERÊNCIA 409
PARTE IV - EXPLORANDO AS APLICAÇÕES WINDOWS 411
CAPÍTULO 20 - INTRODUZINDO O WINDOWS FORMS 412
CRIANDO SUA APLICAÇÃO 413
Criando uma Aplicação Windows Forms 413
Crie o projeto Middleshire Bell Ringers Association 414
Configure as propriedades do form 414
Como se Executa uma Aplicação Windows Forms 417
O que são as Propriedades Comuns do Windows Forms? 418
Alterando as Propriedades Programaticamente 420
ADICIONANDO OS CONTROLES AO FORM 421
Usando os Controles do Windows Forms 422
Adicionando os controles do Windows Forms 423
Configuração das Propriedades do Controle 424
Mudando as Propriedades Dinamicamente 429
Crie o método Reset 430
Programando a Interface do Usuário 432
PUBLICANDO EVENTS NO WINDOWS FORMS 434
Processando Events no Windows Forms 434
Manipule o evento Click para o botão Clear 435
Manipule o evento Click do botão Add 436
Controle o evento Final para o form 437
RODE A APLICAÇÃO 438
CAPÍTULO 20 - RÁPIDA REFERÊNCIA 439
CAPÍTULO 21 - TRABALHANDO COM MENÚS E DIALOG BOXES 441
DIRETRIZES E ESTILO DO MENÚ 442
ADICIONANDO MENÚS E PROCESSANDO EVENTOS DO MENÚ 442
Criando um Menú 443
Crie o menú File 443
Os Tipos de Ítens do Menu Strip 446

Configurando as Propriedades dos ítens do Menú 446
Configure as propriedades dos ítens de menú 446
Teste o menú 449
Outras Propriedades de Ítens de Menú 449
Eventos de Menú 450
Manipule os eventos dos ítens do menú 451
Teste os eventos de menú 452
OS MENÚS POP-UP 453
Criando Menús Pop-Up 453
Visual C# 2005 Passo à Passo (2006)
8
Crie os menus pop-up firstName e lastName 453
Escreva o método de evento saveMemberClick 457
Crie o menu de contexto MemberForm 458
USANDO OS CONTROLES COMUNS DE DIÁLOGO 460
Usando o Controle SaveFileDialog 461
Use um controle SaveFileDialog 461
Usando uma Impressora 463
Use um controle PrintDialog 464
Use um controle PrintDocument 464
CAPÍTULO 21 - RÁPIDA REFERÊNCIA 467
CAPÍTULO 22 – EXECUTANDO A VALIDAÇÃO 470
VALIDANDO DADOS 470
A Propriedade CausesValidation 471
Validação de Eventos 471
UM EXEMPLO - MANUTENÇÃO PERSONALIZADA 471
Uma Primeira Tentativa para Executar a Validação 472
Examine o programa 472
Rode a aplicação 475
Sendo Discreto 476

Mude o ponto onde os dados são validados 476
Teste a aplicação novamente 478
Usando um Controle ErrorProvider 478
Adicione um controle ErrorProvider 478
Teste o controle ErrorProvider 481
Adicionando uma Status Bar 482
Adicione um controle StatusStrip 482
Teste a status bar 484
CHAPTER 22 QUICK REFERENCE 485
PART V - MANAGING DATA 486
CHAPTER 23 - USING A DATABASE 487
USING ADO.NET DATABASES 487
The Northwind Traders Database 488
Creating the Database 488
Create the database 488
Accessing the Database 489
Create a data source 489
Browse product and supplier information 496
Display product data in the Windows Forms application 497
USING ADO.NET PROGRAMMATICALLY 501
Connect to the database 502
Query the Orders table 503
Fetch data and display orders 504
Disconnect from the database 506
Handle null database values 507
CHAPTER 23 QUICK REFERENCE 508
CHAPTER 24 - WORKING WITH DATA BINDING AND DATASETS 510
WINDOWS FORMS CONTROLS AND DATA BINDING 510
Defining a DataSet and Using Simple Data Binding 511
Defining a DataSet class 511

Bind to a column in a DataTable 516
Using Complex Data Binding 518
Create and configure the data source 518
Bind a ComboBox to the DataTable 519
UPDATING A DATABASE USING A DATASET 521
Managing Connections 521
Handling Multi-User Updates 522
Using a DataSet with a DataGridView Control 523
Add the DataGridView control to the form 523
Create a DataAdapter for fetching Products and bind it to the DataGridView control 523
Visual C# 2005 Passo à Passo (2006)
9
Validating User Input in the DataGridView Control 526
Configure the DataGridView control to constrain user input 526
Handle the CellValidating, CellEndEdit, and DataError event 527
Performing Updates by Using a DataSet 529
Validate the changes and handle errors 530
Update the database 532
CHAPTER 24 QUICK REFERENCE 533
PART VI - BUILDING WEB APPLICATIONS 536
CHAPTER 25 - INTRODUCING ASP.NET 537
UNDERSTANDING THE INTERNET AS AN INFRASTRUCTURE 537
Understanding Web Server Requests and Responses 538
Managing State 538
Understanding ASP.NET 539
CREATING WEB APPLICATIONS WITH ASP.NET 541
Building an ASP.NET Application 541
Create the Web application 541
Lay out the Web form 542
Test the Web form 551

Understanding Server Controls 553
Examine a Server control 553
Write event handlers 554
Test the Web form again 557
Creating and Using a Theme 560
Create a new theme 561
Create a Web configuration file and apply the theme 562
CHAPTER 25 QUICK REFERENCE 563
CHAPTER 26 UNDERSTANDING WEB FORMS VALIDATION CONTROLS 565
COMPARING SERVER AND CLIENT VALIDATIONS 565
Server Validation 565
Client Validation 566
Implementing Client Validation 567
Add RequiredFieldValidator controls 567
Add a RangeValidator control 569
Add a ValidationSummary control 570
CHAPTER 26 QUICK REFERENCE 573
CHAPTER 27 SECURING A WEB SITE AND ACCESSING DATA WITH WEB FORMS 574
Using the Web Forms GridView Control 574
MANAGING SECURITY 575
Understanding Forms-Based Security 575
Implementing Forms-Based Security 576
Create the Northwind Web Site 576
Build the login form 576
Configure Website Security and enable Forms-based security 578
QUERYING DATA 582
Displaying Customer Information 582
Create a connection to the Northwind Database 582
Lay out the CustomerData Web form 584
Test the CustomerData form 585

Displaying Data in Pages 586
Modify the GridView to use paging 586
Optimizing Data Access 587
Caching Data in a Data Source 588
Investigate caching with a SqlDataSource object 589
EDITING DATA 590
Deleting Rows from a GridView Control 590
Create the Delete button 591
Updating Rows in a GridView Control 592
Create the Edit, Update, and Cancel buttons 592
CHAPTER 27 QUICK REFERENCE 593
Visual C# 2005 Passo à Passo (2006)
10
CHAPTER 28 - CREATING AND USING A WEB SERVICE 595
WHAT IS A WEB SERVICE? 595
The Role of SOAP 596
What Is the Web Services Description Language? 598
BUILDING THE PRODUCTSERVICE WEB SERVICE 600
Creating the ProductService Web Service 600
Create the Web service 600
Grant Access Rights to use the Windows Event Log 605
Test the Web method 605
5. Close both Internet Explorer windows and return to the Visual Studio
2005 programming environment. Handling Complex Data 607

Define the Product class 608
Create the GetProductInfo Web method 610
WEB SERVICES, CLIENTS, AND PROXIES 613
Talking SOAP: The Difficult Way 613
Talking SOAP: The Easy Way 614

Consuming the ProductService Web Service 614
Create a Web service client application 614
Add a reference to the Web service 615
Execute a Web method 616
Test the application 617
CHAPTER 28 QUICK REFERENCE 620
Visual C# 2005 Passo à Passo (2006)
11
Introdução
O Microsoft Visual C# é uma poderosa mas simples linguagem apontada
principalmente para os programadores que criam aplicações usando o Microsoft.
.NET Framework. Ela herda muitas das melhores características do C++ e do
Microsoft Visual Basic, mas pouco das inconsistências e anacronismos, resultando
em uma linguagem limpa e mais lógica. Com o advento do C# 2.0 viu-se várias
novas características importantes acrescentadas à linguagem, inclusive os
Generics, os Iteratores e métodos anônimos. O ambiente de desenvolvimento
fornecido por Microsoft que Visual Studio 2005 faz destas poderosas características
fáceis de se usar, e os muitos novos assistentes e melhoramentos incluídos do
Visual Studio 2005 podem melhorar muito sua produtividade como um
programador.
Microsoft Visual C# is a powerful but simple language aimed primarily at developers creating
applications by using the Microsoft .NET Framework. It inherits many of the best features of C++ and Microsoft Visual
Basic, but few of the inconsistencies and anachronisms, resulting in a cleaner and more logical language. The advent
of C# 2.0 has seen several important new features added to the language, including Generics, Iterators, and
anonymous methods. The development environment provided by Microsoft Visual Studio 2005 makes these powerful
features easy to use, and the many new wizards and enhancements included in Visual Studio 2005 can greatly
improve your productivity as a developer.

O objetivo principal deste livro é lhe ensinar os fundamentos de se programar com
o C# usando o Visual Studio 2005 e o .NET Framework. Você aprenderá as

características da linguagem C# e então as usará para construir aplicações que
rodam no sistema operacional Windows da Microsoft. Assim que você completar
este livro, você terá um completo entendimento do C# e o terá usado para
construir aplicações do Windows Forms, para acessar o banco de dados Microsoft
SQL Server, para desenvolver aplicações da Web no ASP.NET e para construír e
consumir um serviço de Web.
The aim of this book is to teach you the fundamentals of programming
with C# by using Visual Studio 2005 and the .NET Framework. You will learn the features of the C# language, and
then use them to build applications running on the Microsoft Windows operating system. By the time you complete
this book, you will have a thorough understanding of C# and will have used it to build Windows Forms applications,
access Microsoft SQL Server databases, develop ASP.NET Web applications, and build and consume a Web
service.


Visual C# 2005 Passo à Passo (2006)
12
Parte I – Introdução ao
Visual C# e ao Visual
Studio 2005

Visual C# 2005 Passo à Passo (2006)
13
Capítulo 1 – Bem Vindo ao
C#

Após completar este capítulo você será capaz de:
After completing this chapter, you will be
able to:

• Usar o ambiente de programação Visual Studio 2005.

Use the Visual Studio 2005
programming environment.

• Criar uma aplicação de console do C#.
Create a C# console application.
• Usar os namespaces.
Use namespaces.
• Criar uma aplicação Windows Forms C#.
Create a C# Windows Forms application.
O Visual C# é uma poderosa linguagem orientada à componente da Microsoft. Ele
desempenha um importante papel na arquitetura do .NET Framework, e algumas
pessoas fizeram comparações com o papel que o C teve no desenvolvimento do
UNIX. Se você já souber uma linguagem como o C, o C++, ou Java, você achará a
sintaxe do C# muito familiar porque ele usa os mesmos parênteses para delimitar
os blocos de código. Porém, se você está acostumado a programar em outras
linguagens, você deve poder acompanhar logo a sintaxe e o sentido do C# ; você
apenas precisa aprender colocar os parênteses e os pontos e vírgulas no lugar
certo. Esperançosamente este é apenas um livro para o ajudar!
Microsoft Visual C# is
Microsoft's powerful, component-oriented language. C# plays an important role in the architecture of the Microsoft
.NET Framework, and some people have drawn comparisons to the role that C played in the development of UNIX. If
you already know a language such as C, C++, or Java, you'll find the syntax of C# reassuringly familiar because it
uses the same curly brackets to delimit blocks of code. However, if you are used to programming in other languages,
you should soon be able to pick up the syntax and feel of C#; you just need to learn to put the curly brackets and
semi-colons in the right place. Hopefully this is just the book to help you!

Nesta Parte I, você aprenderá os fundamentos do C#. Você descobrirá como
declarar variáveis e como usar os operadores de adição (+) e de subtração (-) para
criar valores. Você verá como escrever métodos e argumentos de passagem para
métodos. Você também aprenderá a usar as declarações de seleção como as

declarações de repetição, de if e while. Finalmente, você entenderá como o C# usa
as exceções para controlar erros de uma maneira graciosa, fácil de usar. Estes
tópicos formam o núcleo do C# , e você progredirá, aos poucos, para os recursos
mais avançadas na Parte II até a Parte VI.
In Part I, you'll learn the fundamentals of C#. You'll
discover how to declare variables and how to use operators such as plus (+) and minus (-) to create values. You'll
see how to write methods and pass arguments to methods. You'll also learn how to use selection statements such as
if and iteration statements such as while. Finally, you'll understand how C# uses exceptions to handle errors in a
graceful, easy-to-use manner. These topics form the core of C#, and from this solid foundation, you'll progress to
more advanced features in Part II through Part VI.

Visual C# 2005 Passo à Passo (2006)
14
Começando a Programar com o Ambiente Visual Studio
2005

O Visual Studio 2005 é um ambiente de ferramentas de programação rico que
contém toda a funcionalidade você precisará para criar grandes ou pequenos
projetos em C#. Você pode criar projetos até mesmo sem emendas que combinam
módulos de diferentes linguagens. No primeiro exercício, você começará o
ambiente de programação do Visual Studio 2005 e aprenderá a criar uma aplicação
de console.
Visual Studio 2005 is a tool-rich programming environment containing all the functionality you'll
need to create large or small C# projects. You can even create projects that seamlessly combine modules from
different languages. In the first exercise, you'll start the Visual Studio 2005 programming environment and learn how
to create a console application.

Crie uma aplicação de console no Visual Studio 2005
No Microsoft Windows, clique no botão Iniciar, aponte para Todos os Programas, e
então aponte para Microsoft Visual Studio 2005.

In Microsoft Windows, click the Start button,
point to All Programs, and then point to Microsoft Visual Studio 2005.
Clique no ícone Microsoft Visual Studio 2005. O Visual Studio 2005 iniciará.
Click the
Microsoft Visual Studio 2005 icon. Visual Studio 2005 starts.

NOTA - Se esta é na primeira vez que você rodou o Visual Studio 2005, você
poderá ver um caixa de diálogo o incitando a escolher suas configurações do
ambiente de desenvolvimento padrão. O Visual Studio 2005 pode se adaptar
se adaptando à sua linguagem de desenvolvimento preferida. As várias caixas
de diálogo e ferramentas do ambiente de desenvolvimento integrado (IDE)
terá o seu conjunto de seleções padrão para a linguagem que você escolher.
Selecione Visual C# Development Settings da lista, e então clique no botão
Start Visual Studio. Depois de uma pequena demora, a IDE do Visual Studio
2005 aparecerá. If this is the first time that you have run Visual Studio 2005, you might see a dialog
box prompting you to choose your default development environment settings. Visual Studio 2005 can tailor
itself according your preferred development language. The various dialog boxes and tools in the integrated
development environment (IDE) will have their default selections set for the language you choose. Select
Visual C# Development Settings from the list, and then click the Start Visual Studio button. After a short delay,
the Visual Studio 2005 IDE appears.
Visual C# 2005 Passo à Passo (2006)
15

3. No menú File, aponte para New, e então clique em Project. A dialog box New
Project se abrirá. Esta dialog box lhe permite criar um novo projeto usando vários
modelos (templates), como Windows Application, Class Library e Console
Application que especifica o tipo de aplicação que você queira criar.
On the File menu,
point to New, and then click Project. The New Project dialog box opens. This dialog box allows you to create a new
project using various templates, such as Windows Application, Class Library, and Console Application, that specify

the type of application you want to create.

NOTA - Os modelos atuais disponíveis dependem da versão do Visual Studio
2005 que você está usando. Também é possível definir novos modelos de
projetos, mas isso está além da extensão deste livro. The actual templates available
depend on the version of Visual Studio 2005 you are using. It is also possible to define new project templates,
but that is beyond the scope of this book.
Visual C# 2005 Passo à Passo (2006)
16

No painel Templates, clique no ícone Console Application.
In the Templates pane, click the
Console Application icon.
No campo Location, digite C:\Documents and Settings \ MeuNome \ Meus
Documents\Microsoft Press\Visual CSharp Passo por Step\Chapter 1.
In the Location
field, type C:\Documents and Settings\ YourName \My Documents\ Microsoft Press\Visual CSharp Step by
Step\Chapter 1.

Substitua o texto MeuNome neste caminho pelo nome do usuário do Windows. Para
economizar um pouco de espaço ao longo do resto deste livro, nós recorreremos
simplesmente ao caminho "C:\Documents and Settings\MeuNome\My Documents"
como seu diretório dos "\ Meus Documentos".
Replace the text YourName in this path with your
Windows user name. To save a bit of space throughout the rest of this book, we will simply refer to the path
“C:\Documents and Settings\YourName\My Documents” as your “\My Documents” folder.

NOTA Se a diretório que você especificou não existir, o Visual Studio 2005 o
criará para você. If the folder you specify does not exist, Visual Studio 2005 creates it for you.
No campo Name, digite TextHello. In the Name field, type TextHello .

Assegure-se de que o Create Directory do check box do Solution foi marcado e
então clique no OK. O novo projeto abrirá.
Ensure that the Create Directory for Solution check box
is checked and then click OK. The new project opens.

A barra do menú na parte superior da tela fornece acesso às características que
você usará no ambiente de programação. Você pode usar o teclado ou o mouse
para acessar os menús e comandos exatamente como você faz em todos os
programas baseados no Windows. A toolbar fica situada em baixo da barra de
menú e fornece atalhos de botão para rodar os comandos freqüentemente usados.
A janela Code (Código) e a Text Editor (Editod de Texto) que ocupam a parte
principal da IDE exibem os conteúdos dos arquivos fonte. Em um projeto com
Visual C# 2005 Passo à Passo (2006)
17
multi-arquivo, cada arquivo fonte tem sua própria aba etiquetada com o nome do
arquivo fonte. Você pode clicar na aba uma vez para trazer o arquivo fonte
nomeado para o primeiro plano da janela do Código e do Editor de Texto. O
Solution Explorer exibe os nomes dos arquivos associados com o projeto, entre
outros artigos. Você também pode clicar duas vezes um nome de arquivo no
Solution Explorer para trazer aquele arquivo fonte para o primeiro plano da janela
de Código e do Editor de Texto.
The menu bar at the top of the screen provides access to the features
you'll use in the programming environment. You can use the keyboard or the mouse to access the menus and
commands exactly as you can in all Windows-based programs. The toolbar is located beneath the menu bar and
provides button shortcuts to run the most frequently used commands. The Code and Text Editor window occupying
the main part of the IDE displays the contents of source files. In a multi-file project, each source file has its own tab
labeled with the name of the source file. You can click the tab once to bring the named source file to the foreground
in the Code and Text Editor window. The Solution Explorer displays the names of the files associated with the
project, among other items. You can also double-click a file name in the Solution Explorer to bring that source file to
the foreground in the Code and Text Editor window.



Antes de escrever o código, examine os arquivos listados no Solution Explorer que
o Visual Studio 2005 criou como parte de seu projeto:
Before writing the code, examine the
files listed in the Solution Explorer, which Visual Studio 2005 has created as part of your project:

Solution 'TextHello'
Este é o arquivo da solução de alto nível do qual existe um por aplicação. Se
você usa o Windows Explorer para ver o seu diretório \My Documents\Visual
CSharp Passo por Step\Chapter 1\TextHello, você verá que o nome atual deste
arquivo é TextHello.sln. Cada arquivo de solução contém referências a um ou
mais arquivos de projeto.
This is the top-level solution file, of which there is one per application. If
you use Windows Explorer to look at your \My Documents\Visual CSharp Step by Step\Chapter 1\TextHello
folder, you'll see that the actual name of this file is TextHello.sln. Each solution file contains references to one or
more project files.

Visual C# 2005 Passo à Passo (2006)
18
TextHello
Este é o arquivo do projeto do C#. Cada arquivo de projeto referencia um ou
mais arquivos que contêm o código fonte e outros artigos para o projeto. Todo
o código fonte em um único projeto deve ser escrito na mesma linguagem de
programação. No Windows Explorer, este arquivo é chamado de
TextHello.csproj de fato, e é armazenado dentro do diretório seu \ Meu
Documents\Visual CSharp Passo por Step\Chapter 1\TextHello\TextHello.
This
is the C# project file. Each project file references one or more files containing the source code and other items
for the project. All the source code in a single project must be written in the same programming language. In

Windows Explorer, this file is actually called TextHello.csproj, and it is stored in your \My Documents\Visual
CSharp Step by Step\Chapter 1\TextHello\TextHello folder.

Properties
Este é um diretório do projeto TextHello. Se você ampliá-lo, você verá que ele
contém um arquivo chamado AssemblyInfo.cs. O AssemblyInfo.cs é um arquivo
especial que você pode usar para acrescentar atributos a um programa, como o
nome do autor, a data em que o programa foi escrito, e assim por diante. Há
atributos adicionais que você pode usar para modificar o modo no qual o
programa rodará. Estes atributos estão fora da extensão deste livro.
This is a
folder in the TextHello project. If you expand it, you will see that it contains a file called AssemblyInfo.cs.
AssemblyInfo.cs is a special file that you can use to add attributes to a program, such as the name of the
author, the date the program was written, and so on. There are additional attributes that you can use to modify
the way in which the program will run. These attributes are outside the scope of this book.
References
Este é um diretório que contém referências ao código compilado que sua
aplicação pode usar. Quando o código é compilado, ele é convertido em um
assembly e determinado um nome sem igual. Os programadores usam
assemblies para empacotar pedaços úteis de código que eles escreveram para a
distribuição a outros programadores que poderiam os querer os usar nas suas
aplicações. Muitas das características que você estará usando quando
escrevendo aplicações usandom este livro farão uso de assemblies fornecidos
pela Microsoft com o Visual Studio 2005.
This is a folder that contains references to compiled
code that your application can use. When code is compiled, it is converted into an assembly and given a unique
name. Developers use assemblies to package up useful bits of code that they have written for distribution to
other developers that might want to use them in their applications. Many of the features that you will be using
when writing applications using this book will make use of assemblies provided by Microsoft with Visual Studio
2005.


Program.cs
Este é um arquivo fonte do C#, e é aquele exibido na janela do Código e do
Editor de Texto quando o projeto inicialmente é criado. Você escreverá seu
código neste arquivo. Ele contém algum código que o Visual Studio 2005
fornece automaticamente, o qual você examinará brevemente.
This is a C# source
file, and is the one displayed in the Code and Text Editor window when the project is first created. You will write
your code in this file. It contains some code that Visual Studio 2005 provides automatically, which you will
examine shortly.

Escrevendo Seu Primeiro Programa
O arquivo Program.cs define uma classe chamada Program que contém um método
chamado Main. Todos os métodos devem ser definidos dentro de uma classe. O
método Main é especial - ele designa o ponto de entrada do programa. Ele deve ser
Visual C# 2005 Passo à Passo (2006)
19
um método estático. (Os métodos são discutidos no "Capítulo 3 - Escrevendo
Métodos e Aplicando Extensão". Os métodos estáticos são discutidos no "Capítulo 7
Criando e Administrando Classes e Objetos". O método Main é discutido no
"Capítulo 11, Entendendo Arrays de Parâmetro").
The Program.cs file defines a class called
Program that contains a method called Main . All methods must be defined inside a class. The Main method is
special—it designates the program's entry point. It must be a static method. (Methods are discussed in Chapter 3,
“Writing Methods and Applying Scope.” Static methods are discussed in Chapter 7, “Creating and Managing Classes
and Objects.” The Main method is discussed in Chapter 11, “Understanding Parameter Arrays.”)
IMPORTANTE O C# é uma linguagem caso-sensível. Você tem que digitar
Main com um M maiúsculo. C# is a case-sensitive language. You must spell Main with a capital
M.
Nos exercícios seguintes, você escreverá o código para exibir a mensagem Hello

World no console; você construirá e rodará sua aplicação de console Hello World;
você aprenderá como são usados os namespaces para dividir os elementos do
código.
In the following exercises, you'll write the code to display the message Hello World in the console; you'll
build and run your Hello World console application; you'll learn how namespaces are used to partition code elements.

Escreva o código usando a tecnologia do IntelliSense
1. No Na janela do Editor de Texto e de Código que exibe o arquivo Program.cs,
coloque o cursor no método Main depois da chave de abertura e digite Console.
Assim que você digitar a letra C no começo da palavra Console, uma lista do
IntelliSense aparecerá. Esta lista contém todas as palavras chaves e tipos de dados
do C# que são válidos neste contexto. Você, ou pode continuar a digitação, ou
enrolar pela lista e clicar duas vezes no ítem de console com o mouse.
Alternativamente, depois que você digitou o Con, a lista do Intellisense vai
automaticamente para o início do ítem do Console e você pode pressionar a tecla
Tab, Enter ou Spacebar para selecioná-lo.
In the Code and Text Editor window displaying the
Program.cs file, place the cursor in the Main method after the opening brace, and type Console . As you type the
letter C at the start of the word Console an IntelliSense list appears. This list contains all of the valid C# keywords
and data types that are valid in this context. You can either continue typing, or scroll through the list and double-click
the Console item with the mouse. Alternatively, after you have typed Con , the Intellisense list will automatically home
in on the Console item and you can press the Tab, Enter, or Spacebar key to select it.

Main deve se parecer com:
Main should look like this:
static void Main(string[] args)
{
Console
}
NOTA - A Console é uma classe embutida que contém os métodos para exibir

mensagens na tela e obter entrada do teclado. Console is a built-in class that contains
the methods for displaying messages on the screen and getting input from the keyboard.
2. Digite um ponto imediatamente depois de Console. Outra lista do Intellisense
aparecerá exibindo os métodos, propriedades e campos da classe console.
Type a
period immediately after Console. Another Intellisense list appears displaying the methods, properties, and fields of
the Console class.

3. Enrole para baixo pela lista até que WriteLine seja selecionado, e então
pressione Enter. Alternativamente, você poderá continuar a digitação até que
WriteLine seja selecionado e então pressionar Enter.
Scroll down through the list until
Visual C# 2005 Passo à Passo (2006)
20
WriteLine is selected, and then press Enter. Alter-natively, you can continue typing until WriteLine is selected and
then press Enter.

A lista do IntelliSense se fecha e o método WriteLine é acrescentado ao arquivo
fonte. Main deve se parecer agora com:
The IntelliSense list closes, and the WriteLine method is
added to the source file. Main should now look like this:

static void Main(string[] args)
{
Console.WriteLine
}
4. Digite um parêntese aberto. Outra forma do IntelliSense aparecerá.
Type an open
parenthesis. Another IntelliSense tip appears.


Esta forma exibe os parâmetros do método WriteLine. Na realidade, Write Line é
um método sobrecarregado, significando que Console contém mais de um método
nomeado Write Line. Cada versão do método WriteLine pode ser usada para
produzir tipos diferentes de dados. (Os métodos sobrecarregados são discutidos no
Capítulo 3). Main deve se parecer agora com:
This tip displays the parameters of the WriteLine
method. In fact, WriteLine is an overloaded method , meaning that Console contains more than one method named
Write Line . Each version of the WriteLine method can be used to output different types of data. (Overloaded
methods are discussed in Chapter 3.) Main should now look like this:
static void Main(string[] args)
{
Console.WriteLine(
}
Você pode clicar nas setas do tipo para cima e para baixo para rolar pelas versões
sobrecarregadas de WriteLine.
You can click the tip's up and down arrows to scroll through the
overloaded versions of WriteLine .

5. Digite o parêntese fechado, seguido por um ponto-e-vírgula.
Type a close parenthesis,
followed by a semicolon.

Main deve se parecer agora com:
Main should now look like this:
static void Main(string[] args)
{
Console.WriteLine();
}
6. Digite a string "Hello World" entre os parênteses da esquerda e da direita.
Type

the string "Hello World" between the left and right parentheses.

Main deve se parecer agora com:
Main should now look like this:
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}

DICA Pegar o hábito de digitar pares de caracteres duplos, como ( e ) e { e
}, antes de preencher os seus conteúdos. É fácil de esquecer do caractere final
se você esperar até depois que você digitar os conteúdos. Get into the habit of typing
Visual C# 2005 Passo à Passo (2006)
21
matched character pairs, such as ( and ) and { and }, before filling in their contents. It's easy to forget the
closing character if you wait until after you've entered the contents.
Ícones do IntelliSense
O IntelliSense exibe o nome de todo membro de uma classe. À esquerda de cada
nome do membro está um ícone que descreve o tipo do membro. Os ícones e os
seus tipos incluem o seguinte:
IntelliSense displays the name of every member of a class. To the left of
each member name is an icon that depicts the type of member. The icons and their types include the following:

Ícone - Significado

Palavra-chave do C#
método (discutido no Capítulo 3)
propriedade (discutido no Capítulo 14)
classe (discutido no Capítulo 7)
struct (discutido no Capítulo 9)

enum (discutido no Capítulo 9)
interface (discutido no Capítulo 12)
delegate (discutido no Capítulo 16)
Namespace
NOTA - Você freqüentemente verá linhas de código que contém duas barras
dianteiras seguidas por texto normal. Estes são comentários. Eles são
ignorados pelo compilador, mas é muito útil para o programador porque eles
ajudam na documentação do que um programa está fazendo de fato. Por
exemplo: You will frequently see lines of code containing two forward slashes followed by ordinary text.
These are comments. They are ignored by the compiler, but are very useful for developers because they help
document what a program is actually doing. For example:
Console.ReadLine(); // Aguarda que o usuário pressione a tecla Enter
Todo o texto dentro das duas barras até o final da linha será saltado pelo
compilador. Você também pode adicionar comentários de multi-linha que começam
com /*. O compilador saltará tudo até encontrar o */ que poderia ser muitas linhas
abaixo. Nós o estamos encorajando ativamente que você documente seu código
com tantos comentários quantos forem necessários.
All text from the two slashes to the end of
the line will be skipped by the compiler. You can also add multi-line comments starting with /*. The compiler will skip
everything until it finds a */ sequence, which could be many lines lower down. You are actively encouraged to
document your code with as many comments as necessary.

Visual C# 2005 Passo à Passo (2006)
22
Construa e rode uma aplicação console

1. No menú Build, clique em Build Solution. Esta ação faz com que o código em C#
seja compilado, resultando em um programa que você pode executar. As janelas
Output aparecem debaixo do Code and Text Editor.
On the Build menu, click Build Solution.

This action causes the C# code to be compiled, resulting in a program that you can run. The Output windows
appears below the Code and Text Editor window.
DICA - Se a janela Output não aparecer, clique no menú View, e então clique
em Output para exibí-lo. If the Output window does not appear, click the View menu, and then
click Output to display it.
Na janela Output, mensagens semelhante ao mostrado a seguir como o programa
está sendo compilado e exibe os detalhes de qualquer erro que aconteça. Neste
caso, não deve haver nenhum erro ou advertência e o programa deve se construido
prosperamente:
In the Output window, messages similar to the following show how the program is being
compiled and display the details of any errors that have occurred. In this case there should be no errors or warnings,
and the program should build successfully:

Build started: Project: TextHello, Configuration: Debug Any
CPU Csc.exe /config /nowarn:"1701;1702" /errorreport: prompt
/warn:4
Compile complete –- 0 errors, 0 warnings
TextHello -> C:\Documents and Settings\John\My Documents\Microsoft
Press\ ============ Build: 1 succeeded or up-to-
date, 0 failed, 0 skipped ========
NOTA - Um asterisco depois do nome de arquivo na aba acima do Code and
Text Editor indica que o arquivo foi mudado desde que foi salvo por último.
Não há nenhuma necessidade para manualmente salvar o arquivo antes de
construir porque o comando Build Solution salva o arquivo automaticamente.
An asterisk after the file name in the tab above the Code and Text Editor window indicates that the file has
been changed since it was last saved. There is no need to manually save the file before building because the
Build Solution command automatically saves the file.
No menú Debug, clique em Start Without Debugging. Uma janela Command abre e
roda o programa. A mensagem Hello World aparece, e então o programa espera
pelo usuário pressionar qualquer tecla, como mostrado no gráfico seguinte:

On the
Debug menu, click Start Without Debugging. A Command window opens and the program runs. The message Hello
World appears, and then the program waits for the user to press any key, as shown in the following graphic:
Assegure-se de que a janela Command que exibe o programa tenha o foco, e então
pressione Enter. A janela Command fecha e você voltará ao ambiente de
programação do Visual Studio 2005.
Ensure that the Command window displaying the program has
the focus, and then press Enter. The Command window closes and you return to the Visual Studio 2005
programming environment.

Visual C# 2005 Passo à Passo (2006)
23

NOTA - Se você roda o programa usando Start Debugging no menú Debug, a
aplicação roda mas a janela Command fecha imediatamente sem esperar por
você pressionar uma tecla. If you run the program using Start Debugging on the Debug menu,
the application runs but the Command window closes immediately without waiting for you to press a key.
No Solution Explorer, clique no projeto TextHello (não a solution), e então clique no
botão Show All Files. Enterdas chamadas de bin e obj aparecem sobre os nomes
dos arquivos fonte. Estas entradas correspondem diretamente aos diretórios
nomeados bin e obj no diretório do projeto (\ Meu Documents\Visual CSharp Step
by Step\Chapter 1\TextHello\TextHello). Estes diretórios são criados quando você
constrói sua aplicação, e eles contêm a versão executável do programa e alguns
outros arquivos.
In the Solution Explorer, click the TextHello project (not the solution), and then click Show
All Files button. Entries named bin and obj appear above the C# source filenames. These entries correspond directly
to folders named bin and obj in the project folder (\My Documents\Visual CSharp Step by Step\Chapter
1\TextHello\TextHello). These folders are created when you build your application, and they contain the executable
version of the program and some other files.


No Solution Explorer, clique no + à esquerda da entrada de bin. Outro diretório
nomeado Debug aparecerá.
In the Solution Explorer, click the + to the left of the bin entry. Another folder
named Debug appears.

No Solution Explorer, clique no + à esquerda da da entrada de Debug. Três
entradas chamadas TextHello.exe, TextHello.pdb e TextHello.vshost.exe
aparecerão. O arquivo TextHello.exe é o programa compilado e é este arquivo que
roda quando você clica Start Without Debugging dentro do menú Debug. Os outros
dois arquivos contêm informações que são usadas pelo Visual Studio 2005 se você
rodar seu programa dentro do modo Debug (quando você clica Start Debugging
dentro o menú Debug).
In the Solution Explorer, click the + to the left of the Debug entry. Three entries
named TextHello.exe, TextHello.pdb, and TextHello.vshost.exe appear. The file TextHello.exe is the compiled
program, and it is this file that runs when you click Start Without Debugging in the Debug menu. The other two files
contain information that is used by Visual Studio 2005 if you run your program in Debug mode (when you click Start
Debugging in the Debug menu).

Visual C# 2005 Passo à Passo (2006)
24


Compilação em Linha de Comando
Você também pode compilar manualmente seus arquivos fontes para um arquivo
executável usando a linha de comando do compilador do C#, o csc. Primeiro você
tem que completar os seguintes passos para montar seu ambiente:
You can also
compile your source files into an executable file manually by using the csc command-line C# compiler. You must first
complete the following steps to set up your environment:


1. No Windows menú Iniciar, aponte para Todos os Programas, vá para Microsoft
Visual Studio 2005, aponte para Visual Studio Tools, e clique Visual Studio 2005
Command Prompt. Uma janela do Command sed abrirá, e o PATH das variáveis do
ambiente, o LIB e o INCLUDE são configurados para incluir os locais das várias
bibliotecas do .NET Framework e utilitários.
On the Windows Start menu, point to All Programs,
point to Microsoft Visual Studio 2005, point to Visual Studio Tools, and click Visual Studio 2005 Command Prompt. A
Command window opens, and the envionment variables PATH , LIB , and INCLUDE are configured to include the
locations of the various .NET Framework libraries and utilities.
DICA - Você também pode rodar o script de vcvarsall.bat, localizado no
diretório C:\Program Files\Microsoft Visual Studio 8\VC, se você quer
configurar as variáveis de ambiente enquanto executa em uma janela de
Prompt de Command ordinária. You can also run the vcvarsall.bat script, located in the
C:\Program Files\Microsoft Visual Studio 8\VC folder, if you want to configure the environment variables while
running in an ordinary Command Prompt window.
2. Na janela do Prompt de Command do Visual Studio 2005, digite o seguinte
comando para ir para o diretório do projeto \ Meus Documents\Microsoft
Press\Visual CSharp Step by Step\Chapter 1\TextHello\TextHello:
In the Visual Studio
2005 Command Prompt window, type the following command to go to the \My Documents\Microsoft Press\Visual
CSharp Step by Step\Chapter 1\TextHello\TextHello project folder:

cd \Documents and Settings\YourName\My Documents\Microsoft
Press\Visual CSharp Step by Step\Chapter 1\TextHello\TextHello
3. Digite o seguinte comando:
Type the following command:
csc /out:TextHello.exe Program.cs
Este comando cria o arquivo executável TextHello.exe do arquivo fonte do C#. Se
você não usa a opção da linha de comando /out, o arquivo executável pega o nome
do arquivo fonte e será chamado de Program.exe.

This command creates the executable file
Visual C# 2005 Passo à Passo (2006)
25
TextHello.exe from the C# source file. If you don't use the /out command-line option, the executable file takes its
name from the source file and is called Program.exe.

4. Rode o programa digitando o seguinte comando:
Run the program by typing the following
command:

TextHello
O programa deve rodar exatamente como o anterior, a não ser que você não verá o
lembrete "Press any key to continue".
The program should run exactly as before, except that you
will not see the "Press any key to continue" prompt.

Usando Namespaces
O exemplo que você viu anteriormente é um programa muito pequeno. Porém,
programas pequenos podem crescer logo para programas maiores. A medida que
um programa cresce, cria-se dois problemas. Primeiro, mais código é mais difícil de
se entender e manter que menos código. Segundo, mais código normalmente
significa mais nomes; mais nomeação de dados, mais nomeação de métodos e
mais nomeação de classes. Como o aumento do número de nomes, torna assim a
probabilidade da construção do projeto falhar porque dois ou mais nomes podem
colidir (especialmente quando o programa usa bibliotecas de terceiros).
The example
you have seen so far is a very small program. However, small programs can soon grow into bigger programs. As a
program grows, it creates two problems. First, more code is harder to understand and maintain than less code.
Second, more code usually means more names; more named data, more named methods, and more named classes.
As the number of names increases so does the likelihood of the project build failing because two or more names

clash (especially when the program uses third-party libraries).
No passado, os programadores tentaram resolver o problema da colisão de nomes
antepondo nomes com algum tipo de qualificador (ou a configuração de
qualificadores). Esta solução não é muito boa porque não é escalável; os nomes
ficam mais longos e você gasta mais tempo na escrita do software e mais também
na digitação (há uma diferença) e lendo e re-lendo nomes longos incompreensíveis.
In the past, programmers tried to solve the name-clashing problem by prefixing names with some sort of qualifier (or
set of qualifiers). This solution is not a good one because it's not scalable; names become longer and you spend less
time writing software and more time typing (there is a difference) and reading and re-reading incomprehensibly long
names.

Os namespaces ajudam a resolver este problema criando um recipiente nomeado
para os outros identificadores, como as classes. Duas classes não serão
confundidas com o mesmo nome entre si se elas estiverem em namespaces
diferente. Você pode criar uma classe chamada Greeting dentro do namespace
chamado TextHello, como este:
Namespaces help solve this problem by creating a named container
for other identifiers, such as classes. Two classes with the same name will not be confused with each other if they
live in different namespaces. You can create a class named Greeting inside the namespace named TextHello, like
this:

namespace TextHello
{
class Greeting
{

}
}

×