Programming in C#
Subtitle: A Primer
Edition: Third Edition
Publisher: Tata McGraw-Hill
Published: Apr 05, 2010
Language: eng
ISBN-13: 9780070702073
Description: This revised edition maintains the lucid flow and continuity that have been hallmarks of this book. This book takes the student through a step-by-step process, starting from simple programming problems to more complex and difficult ones. The content of this new edition has been enriched with the inclusion of new topics, projects and sample programs and offers hands-on practice to students at developing real-life C# applications.

Salient Features:

- Expanded coverage of Debugging
- Coverage of Winforms
- Case studies at the end of each chapter --- more than 20 case studies in the book
- Three new projects --- 1 major project (Voting Control for Asp.Net) and 2 minor projects (Project Planner and Task Actions)
- Two new appendices --- The CLR and .Net Framework and Building C# Applications
- Excellent pedagogical features
    - Over 100 Example Programs
    - Over 350 Review Questions
    - Over 150 Programming Exercises
    - Over 40 Debugging Exercises
Table of contents: label: 3.5
title: Main Returning a Value
pagenum: 22; label: 3.6
title: Using Aliases for Namespace Classes
pagenum: 22; label: 3.7
title: Passing String Objects to WriteLine Method
pagenum: 23; label: 3.8
title: Command Line Arguments
pagenum: 23; label: 3.9
title: Main with a Class
pagenum: 25; label: 3.10
title: Providing Interactive Input
pagenum: 26; label: 3.11
title: Using Mathematical Functions
pagenum: 27; label: 3.12
title: Multiple Main Methods
pagenum: 28; label: 3.13
title: Compile Time Errors
pagenum: 28; label: 3.14
title: Program Structure
pagenum: 29; label: 3.15
title: Program Coding Style
pagenum: 30; title: Case Study
pagenum: 30; title: Common Programming Errors
pagenum: 31; title: Review Questions
pagenum: 32; title: Debugging Exercises
pagenum: 32; title: Programming Exercises
pagenum: 33; label: 4
title: Literals, Variables and Data Types
pagenum: 34; label: 4.1
title: Introduction
pagenum: 34; label: 4.2
title: Literals
pagenum: 36; label: 4.3
title: Variables
pagenum: 39; label: 4.4
title: Data Types
pagenum: 39; label: 4.5
title: Value Types
pagenum: 40; label: 4.6
title: Reference Types
pagenum: 43; label: 4.7
title: Declaration of Variables
pagenum: 43; label: 4.8
title: Initialization of Variables
pagenum: 44; label: 4.9
title: Default Values
pagenum: 44; label: 4.10
title: Constant Variables
pagenum: 45; label: 4.11
title: Scope of Variables
pagenum: 46; label: 4.12
title: Boxing and Unboxing
pagenum: 48; title: Case Study
pagenum: 49; title: Common Programming Errors
pagenum: 50; title: Review Questions
pagenum: 51; title: Debugging Exercises
pagenum: 52; title: Programming Exercises
pagenum: 53; label: 5
title: Operators and Expressions
pagenum: 55; label: 5.1
title: Introduction
pagenum: 55; label: 5.2
title: Arithmetic Operators
pagenum: 55; label: 5.3
title: Relational Operators
pagenum: 57; label: 5.4
title: Logical Operators
pagenum: 58; label: 5.5
title: Assignment Operators
pagenum: 59; label: 5.6
title: Increment and Decrement Operators
pagenum: 59; label: 5.7
title: Conditional Operator
pagenum: 60; label: 5.8
title: Bitwise Operators
pagenum: 61; label: 5.9
title: Special Operators
pagenum: 62; label: 5.10
title: Arithmetic Expressions
pagenum: 62; label: 5.11
title: Evaluation of Expressions
pagenum: 63; label: 5.12
title: Precedence of Arithmetic Operators
pagenum: 64; label: 5.13
title: Type Conversions
pagenum: 65; label: 5.14
title: Operator Precedence and Associativity
pagenum: 69; label: 5.15
title: Mathematical Functions
pagenum: 72; title: Case Study
pagenum: 73; title: Common Programming Errors
pagenum: 75; title: Review Questions
pagenum: 75; title: Debugging Exercises
pagenum: 77; title: Programming Exercises
pagenum: 77; label: 6
title: Decision Making and Branching
pagenum: 80; label: 6.1
title: Introduction
pagenum: 80; label: 6.2
title: Decision Making with if Statement
pagenum: 80; label: 6.3
title: Simple if Statement
pagenum: 81; label: 6.4
title: The if ... else Statement
pagenum: 82; label: 6.5
title: Nesting of if ... else Statements
pagenum: 86; label: 6.6
title: The else if Ladder
pagenum: 88; label: 6.7
title: The Switch Statement
pagenum: 90; label: 6.8
title: The ? : Operator
pagenum: 95; title: Case Study
pagenum: 96; title: Common Programming Errors
pagenum: 97; title: Review Questions
pagenum: 98; title: Debugging Exercises
pagenum: 99; title: Programming Exercises
pagenum: 100; label: 7
title: Decision Making and Looping
pagenum: 102; label: 7.1
title: Introduction
pagenum: 102; label: 7.2
title: The while Statement
pagenum: 103; label: 7.3
title: The do Statement
pagenum: 104; label: 7.4
title: The for Statement
pagenum: 108; label: 7.5
title: The foreach Statement
pagenum: 113; label: 7.6
title: Jumps in Loops
pagenum: 114; title: Case Study
pagenum: 118; title: Common Programming Errors
pagenum: 120; title: Review Questions
pagenum: 120; title: Debugging Exercises
pagenum: 123; title: Programming Exercises
pagenum: 124; label: 8
title: Methods in C#
pagenum: 125; label: 8.1
title: Introduction
pagenum: 125; label: 8.2
title: Declaring Methods
pagenum: 125; label: 8.3
title: The Main Method
pagenum: 126; label: 8.4
title: Invoking Methods
pagenum: 127; label: 8.5
title: Nesting of Methods
pagenum: 128; label: 8.6
title: Method Parameters
pagenum: 129; label: 8.7
title: Pass by Value
pagenum: 129; label: 8.8
title: Pass by Reference
pagenum: 130; label: 8.9
title: The Output Parameters
pagenum: 131; label: 8.10
title: Variable Argument Lists
pagenum: 132; label: 8.11
title: Methods Overloading
pagenum: 135; title: Case Study
pagenum: 137; title: Common Programming Errors
pagenum: 140; title: Review Questions
pagenum: 141; title: Debugging Exercises
pagenum: 142; title: Programming Exercises
pagenum: 143; label: 9
title: Handling Arrays
pagenum: 145; label: 9.1
title: Introduction
pagenum: 145; label: 9.2
title: One-Dimensional Arrays
pagenum: 145; label: 9.3
title: Creating an Array
pagenum: 146; label: 9.4
title: Two-Dimensional Arrays
pagenum: 150; label: 9.5
title: Variable-Size Arrays
pagenum: 152; label: 9.6
title: The System.Array Class
pagenum: 153; label: 9.7
title: ArrayList Class
pagenum: 154; title: Case Study
pagenum: 160; title: Common Programming Errors
pagenum: 163; title: Review Questions
pagenum: 163; title: Debugging Exercises
pagenum: 164; title: Programming Exercises
pagenum: 165; label: 10
title: Manipulating Strings
pagenum: 168; label: 10.1
title: Introduction
pagenum: 168; label: 10.2
title: Creating Strings
pagenum: 168; label: 10.3
title: String Methods
pagenum: 170; label: 10.4
title: Inserting Strings
pagenum: 171; label: 10.5
title: Comparing Strings
pagenum: 173; label: 10.6
title: Finding Substrings
pagenum: 174; label: 10.7
title: Mutable Strings
pagenum: 174; label: 10.8
title: Arrays of Strings
pagenum: 177; label: 10.9
title: Regular Expressions
pagenum: 179; title: Case Study
pagenum: 182; title: Common Programming Errors
pagenum: 184; title: Review Questions
pagenum: 185; title: Debugging Exercises
pagenum: 186; title: Programming Exercises
pagenum: 188; label: 11
title: Structures and Enumerations
pagenum: 190; label: 11.1
title: Introduction
pagenum: 190; label: 11.2
title: Structures
pagenum: 190; label: 11.3
title: Structs with Methods
pagenum: 192; label: 11.4
title: Nested Structs
pagenum: 194; label: 11.5
title: Differences Between Classes and Structs
pagenum: 197; label: 11.6
title: Enumerations
pagenum: 198; label: 11.7
title: Enumerator Initialization
pagenum: 201; label: 11.8
title: Enumerator Base Types
pagenum: 202; label: 11.9
title: Enumerator Type Conversion
pagenum: 203; title: Case Study
pagenum: 204; title: Common Programming Errors
pagenum: 206; title: Review Questions
pagenum: 206; title: Debugging Exercises
pagenum: 208; title: Programming Exercises
pagenum: 210; label: 12
title: Classes and Objects
pagenum: 212; label: 12.1
title: Introduction
pagenum: 212; label: 12.2
title: Basic Principles of OOP
pagenum: 212; label: 12.3
title: Defining a Class
pagenum: 213; label: 12.4
title: Adding Variables
pagenum: 213; label: 12.5
title: Adding Methods
pagenum: 214; label: 12.6
title: Member Access Modifiers
pagenum: 216; label: 12.7
title: Creating Objects
pagenum: 217; label: 12.8
title: Accessing Class Members
pagenum: 218; label: 12.9
title: Constructors
pagenum: 219; label: 12.10
title: Overloaded Constructors
pagenum: 221; label: 12.11
title: Static Members
pagenum: 222; label: 12.12
title: Static Constructors
pagenum: 223; label: 12.13
title: Private Constructors
pagenum: 223; label: 12.14
title: Copy Constructors
pagenum: 223; label: 12.15
title: Destructors
pagenum: 224; label: 12.16
title: Member Initialization
pagenum: 224; label: 12.17
title: The this Reference
pagenum: 225; label: 12.18
title: Nesting of Classes
pagenum: 225; label: 12.19
title: Constant Members
pagenum: 227; label: 12.20
title: Read-only Members
pagenum: 227; label: 12.21
title: Properties
pagenum: 228; label: 12.22
title: Indexers
pagenum: 230; title: Case Study
pagenum: 233; title: Common Programming Errors
pagenum: 235; title: Review Questions
pagenum: 236; title: Debugging Exercises
pagenum: 240; title: Programming Exercises
pagenum: 242; label: 13
title: Inheritance and Polymorphism
pagenum: 244; label: 13.1
title: Introduction
pagenum: 244; label: 13.2
title: Classical Inheritance
pagenum: 244; label: 13.3
title: Containment Inheritance
pagenum: 245; label: 13.4
title: Defining a Subclass
pagenum: 245; label: 13.5
title: Visibility Control
pagenum: 247; label: 13.6
title: Defining Subclass Constructors
pagenum: 250; label: 13.7
title: Multilevel Inheritance
pagenum: 252; label: 13.8
title: Hierarchical Inheritance
pagenum: 256; label: 13.9
title: Overriding Methods
pagenum: 256; label: 13.10
title: Hiding Methods
pagenum: 257; label: 13.11
title: Abstract Classes
pagenum: 259; label: 13.12
title: Abstract Methods
pagenum: 259; label: 13.13
title: Sealed Classes: Preventing Inheritance
pagenum: 260; label: 13.14
title: Sealed Methods
pagenum: 260; label: 13.15
title: Polymorphism
pagenum: 261; title: Case Study
pagenum: 266; title: Common Programming Errors
pagenum: 268; title: Review Questions
pagenum: 268; title: Debugging Exercises
pagenum: 271; title: Programming Exercises
pagenum: 272; label: 14
title: Interface: Multiple Inheritance
pagenum: 275; label: 14.1
title: Introduction
pagenum: 275; label: 14.2
title: Defining an Interface
pagenum: 275; label: 14.3
title: Extending an Interface
pagenum: 276; label: 14.4
title: Implementing Interfaces
pagenum: 277; label: 14.5
title: Interfaces and Inheritance
pagenum: 280; label: 14.6
title: Explicit Interface Implementation
pagenum: 281; label: 14.7
title: Abstract Class and Interfaces
pagenum: 284; title: Case Study
pagenum: 287; title: Common Programming Errors
pagenum: 289; title: Review Questions
pagenum: 289; title: Debugging Exercises
pagenum: 291; title: Programming Exercises
pagenum: 314; label: 15
title: Operator Overloading
pagenum: 295; label: 15.1
title: Introduction
pagenum: 295; label: 15.2
title: Overloadable Operators
pagenum: 295; label: 15.3
title: Need for Operator Overloading
pagenum: 296; label: 15.4
title: Defining Operator Overloading
pagenum: 296; label: 15.5
title: Overloading Unary Operators
pagenum: 297; label: 15.6
title: Overloading Binary Operators
pagenum: 298; label: 15.7
title: Overloading Comparison Operators
pagenum: 300; title: Case Study
pagenum: 307; title: Common Programming Errors
pagenum: 309; title: Review Questions
pagenum: 309; title: Debugging Exercises
pagenum: 310; title: Programming Exercises
pagenum: 314; label: 16
title: Delegates and Events
pagenum: 315; label: 16.1
title: Introduction
pagenum: 315; label: 16.2
title: Delegates
pagenum: 315; label: 16.3
title: Delegate Declaration
pagenum: 316; label: 16.4
title: Delegate Methods
pagenum: 316; label: 16.5
title: Delegate Instantiation
pagenum: 317; label: 16.6
title: Delegate Invocation
pagenum: 319; label: 16.7
title: Using Delegates
pagenum: 319; label: 16.8
title: Multicast Delegates
pagenum: 320; label: 16.9
title: Events
pagenum: 321; title: Case Study
pagenum: 329; title: Review Questions
pagenum: 331; title: Debugging Exercises
pagenum: 333; label: 17
title: Managing Console I/O Operations
pagenum: 336; label: 17.1
title: Introduction
pagenum: 336; label: 17.2
title: The Console Class
pagenum: 336; label: 17.3
title: Console Input
pagenum: 336; label: 17.4
title: Console Output
pagenum: 337; label: 17.5
title: Formatted Output
pagenum: 339; label: 17.6
title: Numeric Formatting
pagenum: 340; label: 17.7
title: Standard Numeric Format
pagenum: 340; label: 17.8
title: Custom Numeric Format
pagenum: 342; title: Case Study
pagenum: 345; title: Review Questions
pagenum: 348; title: Debugging Exercises
pagenum: 348; title: Programming Exercises
pagenum: 350; label: 18
title: Managing Errors and Exceptions
pagenum: 352; label: 18.1
title: Introduction
pagenum: 352; label: 18.2
title: What is Debugging?
pagenum: 352; label: 18.3
title: Types of Errors
pagenum: 352; label: 18.4
title: Exceptions
pagenum: 354; label: 18.5
title: Syntax of Exception Handling Code
pagenum: 355; label: 18.6
title: Multiple Catch Statements
pagenum: 357; label: 18.7
title: The Exception Hierarchy
pagenum: 358; label: 18.8
title: General Catch Handler
pagenum: 359; label: 18.9
title: Using Finally Statement
pagenum: 360; label: 18.10
title: Nested Try Blocks
pagenum: 361; label: 18.11
title: Throwing Our Own Exceptions
pagenum: 363; label: 18.12
title: Checked and Unchecked Operators
pagenum: 368; label: 18.13
title: Using Exceptions for Debugging
pagenum: 368; title: Case Study
pagenum: 368; title: Common Programming Errors
pagenum: 371; title: Review Questions
pagenum: 372; title: Debugging Exercises
pagenum: 373; title: Programming Exercises
pagenum: 376; label: 19
title: Multithreading in C#
pagenum: 377; label: 19.1
title: Introduction
pagenum: 377; label: 19.2
title: Understanding the System.Threading Namespace
pagenum: 377; label: 19.3
title: Creating and Starting a Thread
pagenum: 380; label: 19.4
title: Scheduling a Thread
pagenum: 382; label: 19.5
title: Synchronizing Threads
pagenum: 384; label: 19.6
title: Thread Pooling
pagenum: 386; title: Case Study
pagenum: 388; title: Common Programming Errors
pagenum: 390; title: Review Questions
pagenum: 390; title: Programming Exercises
pagenum: 390; label: 20
title: Windows Forms and Web-based Application Development on .NET
pagenum: 392; label: 20.1
title: Introduction
pagenum: 392; label: 20.2
title: Creating Windows Forms
pagenum: 392; label: 20.3
title: Customizing a Form
pagenum: 394; label: 20.4
title: Understanding Microsoft Visual Studio 2005
pagenum: 398; label: 20.5
title: Creating and Running a Sample WinApp Windows Application
pagenum: 402; label: 20.6
title: Overview of Design Patterns
pagenum: 407; label: 20.7
title: Creating and Running a Sample WinApp2 Windows Application
pagenum: 408; label: 20.8
title: Web-based Application on .NET
pagenum: 418; title: Case Study
pagenum: 433; title: Common Programming Errors
pagenum: 437; title: Review Questions
pagenum: 437; title: Programming Exercises
pagenum: 438; label: Appendix A
title: Minor Project 1: Project Planner
pagenum: 439; label: Appendix B
title: Minor Project 2: Task Actions
pagenum: 455; label: Appendix C
title: Major Project: Voting Control for ASP.NET
pagenum: 463; label: Appendix D
title: The CLR and the .NET Framework
pagenum: 473; label: Appendix E
title: Building C# Applications
pagenum: 488; title: Bibliography
pagenum: 501; title: Index
pagenum: 503