Table of Contents
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Who This Book Is For. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Finding Your Best Starting Point in This Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Conventions and Features in This Book
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi
Conventions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi
Other Features
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Prerelease Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Hardware and Software Requirements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Code Samples
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Installing the Code Samples
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Using the Code Samples
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Uninstalling the Code Samples
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxix
Find Additional Content Online. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
Support for This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
Questions and Comments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
Introducing Microsoft Visual C# and Microsoft Visual Studio 2010
Welcome to C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Beginning Programming with the Visual Studio 2010 Environment. . . . . . . . . . 3
Writing Your First Program
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Using Namespaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Creating a Graphical Application
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 1 Quick Reference
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Working with Variables, Operators, and Expressions. . . . . . . . . . . . . 27
Understanding Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Using Identifiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Identifying Keywords
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Using Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Naming Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Declaring Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Working with Primitive Data Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Unassigned Local Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Displaying Primitive Data Type Values
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Using Arithmetic Operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Operators and Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Examining Arithmetic Operators
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Controlling Precedence
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Using Associativity to Evaluate Expressions
. . . . . . . . . . . . . . . . . . . . . . . . 42
Associativity and the Assignment Operator
. . . . . . . . . . . . . . . . . . . . . . . . 42
Incrementing and Decrementing Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Prefix and Postfix
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Declaring Implicitly Typed Local Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Chapter 2 Quick Reference
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Writing Methods and Applying Scope. . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Declaring a Method
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Returning Data from a Method
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Calling Methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51