1. Overview.- 1.1 Assumptions.- 1.2 What Is Covered.- 1.3 System Requirements.
- 1.4 C# History.- 1.5 Languages and Standards.- 1.6 Algorithms and Libraries.- 1.7 News Groups.
- 1.8 Bibliography.- 2. Language Concepts.- 2.1 Programming Language Developments.- 2.1.
1 Compilation Style.- 2.1.2 Data Types.- 2.1.3 Dynamic Arrays.- 2.
1.4 Polymorphism.- 2.1.5 Structured Programming.- 2.1.6 Stepwise Refinement.
- 2.1.7 Information Hiding and Modules.- 2.1.8 Pointers and References.- 2.1.
9 Operator Overloading.- 2.1.10 Threads and Multitasking.- 2.1.11 Exception Handling.- 2.
1.12 Object-Oriented Programming.- 2.1.12.1 The Approach of Meyer.- 2.1.
12.2 The Approach of Rumbaugh, et al.- 2.1.13 Development Environments.- 2.1.14 Graphical Development Tools.
- 2.1.15 Software Components.- 2.2 C# Concepts and Terminology.- 2.2.1 Classes.
- 2.2.1.1 Constants.- 2.2.1.2 Fields.
- 2.2.1.3 Methods.- 2.2.1.4 Properties.
- 2.2.1.5 Events.- 2.2.1.6 Indexers.
- 2.2.1.7 Instance Constructors.- 2.2.1.8 Static Constructors.
- 2.2.1.9 Destructors.- 2.2.2 Inheritance.- 2.
2.3 Interfaces.- 2.2.4 Delegates.- 2.2.5 Attributes.
- 2.3 Bibliography.- 2.3.1 Books and Articles.- 2.3.2 Web Addresses.
- 2.3.2.1 Search engines.- 2.3.2.2 Ada.
- 2.3.2.3 C.- 2.3.2.4 C++.
- 2.3.2.5 C#.- 2.3.2.6 Eiffel.
- 2.3.2.7 Fortran.- 2.3.2.8 Microsoft Visual Basic.
- 2.3.2.9 Modula 2.- 2.3.2.10 Oberon.
- 2.3.2.11 Pascal.- 3. An Introduction to Programming in C#.- 3.1 Introduction.
- 3.2 Hello World Using the Console.- 3.2.1 using System;.- 3.2.2 class HelloWorld.
- 3.2.3 {and}.- 3.2.4 static int Main().- 3.2.
5 Console.WriteLine("Hello World");.- 3.2.6 return 0;.- 3.2.7 ;.
- 3.3 Hello World Using Developer Studio.- 3.3.1 Starting Developer Studio.- 3.3.2 Creating a New Project.
- 3.3.3 Creating an Empty Project.- 3.3.4 Adding an Existing Item.- 3.3.
5 Building the Project.- 3.3.6 Running the Project.- 3.3.7 Editing the Project.- 3.
4 Console Application.- 3.5 SimpleText I/O.- 3.6 Simple Numeric I/O.- 3.7 On-Line Documentation.- 3.
7.1 Contents Mode.- 3.7.2 Compiler Error Messages.- 3.8 Key Concepts of C#.- 3.
9 Summary.- 4. Arithmetic and Expressions.- 4.1 Introduction.- 4.2 Integral Types.- 4.
3 Floating Point Types.- 4.4 The Decimal Type.- 4.5 Math Members.- 4.5.1 Public Static (Shared) Fields.
- 4.5.2 Public Static (Shared) Methods.- 4.5.3 Public Instance Methods.- 4.5.
4 Protected Instance Methods.- 4.6 Operators.- 4.7 Simple and Aliased Types.- 4.8 Integer Arithmetic.- 4.
8.1 Integer Overflow.- 4.8.2 Evaluating Simple Expressions.- 4.8.3 Evaluating Expressions Using Increment Operators.
- 4.8.4 Evaluating Expressions Using Integer Division and Remainder.- 4.8.5 Variation on a Theme.- 4.9 Floating Point Arithmetic.
- 4.9.1 Simple Single and Double Precision Example.- 4.9.2 Comparing Calculations.- 4.9.
2.1 Using Variables of Type float.- 4.9.2.2 Using Variables of Type double.- 4.9.
3 Expression Equivalence.- 4.9.4 Trigonometric Evaluation.- 4.9.5 Base Conversion.- 4.
9.6 Overflow and Underflow.- 4.9.7 Using an Uninitialised Variable.- 4.10 Formatting Numbers.- 4.
11 Escape Sequences.- 4.12 Literals.- 4.13 Arithmetic in Other languages.- 4.14 Summary.- 4.
15 Bibliography.- 4.16 Problems.- 5. Some More on Data Types.- 5.1 Booleans.- 5.
2 Characters and Strings.- 5.2.1 The char Data Type.- 5.2.2 Arrays of Characters.- 5.
2.3 Initialization and Object Assignment.- 5.2.4 Accessing Array Elements.- 5.3 Value and Reference Types.- 5.
4 Enum Types.- 5.4.1 Days of the Week Example.- 5.4.2 Colours Example.- 5.
5 Other Types.- 5.5.1 Struct Types.- 5.5.2 Class Types.- 5.
5.3 Object Types.- 5.5.4 Array Types.- 5.6 C# Keywords.- 5.
7 Comments.- 5.8 Summary.- 5.9 Problem.- 6. Strings.- 6.
1 Basic String Manipulation.- 6.2 Concatenating and Splitting Strings.- 6.3 Using the Length Property and IndexOf Method.- 6.4 String Constructors, Fields, Methods, Operators and Properties.- 6.
5 Problems.- 7. Arrays.- 7.1 Introduction.- 7.2 One-dimensional Arrays.- 7.
2.1 Using a for Statement.- 7.2.2 Using a foreach Statement.- 7.3 Array Initialization.- 7.
4 Simple Two-dimensional Arrays.- 7.5 Arrays of Arrays.- 7.6 Ragged Arrays.- 7.7 List of Array Members.- 7.
7.1 Public Static (Shared) Methods.- 7.7.2 Public Instance Properties.- 7.7.3 Public Instance Methods.
- 7.7.4 Protected Instance Constructors.- 7.7.5 Protected Instance Methods.- 7.8 Summary.
- 7.9 Problems.- 8. Control Structures.- 8.1 Statement End Points and Reachability.- 8.2 Types of Statements.
- 8.2.1 Labeled Statements.- 8.2.2 Declaration Statements.- 8.2.
3 Embedded Statements.- 8.2.3.1 Blocks.- 8.2.3.
2 Empty Statements.- 8.2.3.3 Expression Statements.- 8.2.3.
4 Checked and Unchecked Statements.- 8.2.3.5 Lock Statements.- 8.2.3.
6 Using Statements.- 8.3 Selection Statements.- 8.3.1 If Statement.- 8.3.
2 Switch Statement.- 8.4 Iteration Statements.- 8.4.1 While Statement.- 8.4.
2 Do Statement.- 8.4.3 For Statement.- 8.4.4 Foreach Statement.- 8.
5 Jump Statements.- 8.5.1 Break Statement.- 8.5.2 Continue Statement.- 8.
5.3 Goto Statement.- 8.5.4 Return Statement.- 8.5.5 Example of Jump Statements.
- 8.6 Exception Handling Using Try, Catch Throw.- 8.7 Summary.- 8.8 Bibliography.- 8.9 Problems.
- 9. Input and Output.- 9.1 Introduction.- 9.2 Using the Console Class.- 9.3 Using the StreamReader Class.
- 9.4 Specifying the File Location.- 9.5 Reading from Standard Input.- 9.6 Reading from the Command Line.- 9.7 Using StreamReader and StreamWriter with Hard-coded File Names.
- 9.8 Reading a File from a Web Server.- 9.9 Reading Tabular Data from a Text File.- 9.10 The System.Console Class.- 9.
11 The StreamReader Class.- 9.12 The System.IO.File Class.- 9.13 Problems.- 10.
Exceptions.- 10.1 Introduction.- 10.2 The Exception Hierarchy.- 10.2.1 Single Public Fields.
- 10.2.2 Single Public Methods.- 10.3 Integer Arithmetic Exceptions.- 10.3.1 Default Run Time Behaviour.
- 10.3.2 Checked Behaviour.- 10.4 Floating Point Exceptions.- 10.4.1 Default Run Time Behaviour.
- 10.4.2 Checked Behaviour.- 10.4.3 Throwing an Exception.- 10.5 Summary.
- 11. Threads.- 11.1 Introduction.- 11.2 Basic Thread Syntax.- 11.3 Using the Sleep Method.
- 11.4 Threads and Static Variables.- 11.5 Threads with Start, Suspend and Resume.- 11.6 Thread Priority.- 11.7 Thread States.
- 11.8 Microsoft Examples.- 11.9 Bibliography.- 11.10 Problems.- 12. Structs.
- 12.1 Introduction.- 12.2 Basic Syntax.- 12.3 Simple Example.- 13. Classes.
- 13.1 Basic Class Syntax.- 13.2 Examples.- 13.2.1 Greatest Common Divider.- 13.
2.2 Recursion.- 13.2.3 Checked Arithmetic.- 13.2.4 Using Try and Catch.
- 13.2.5 Date Class.- 13.2.6 Arrays of Dates.- 13.2.
7 Inheritance: Virtual Date Base Class.- 13.3 Passing Parameters.- 13.4 Instance and Static Members.- 13.4.1 Compiler Error CS0120.
- 13.4.2 Compiler Error CS0176.- 13.5 Additional Syntax.- 13.6 Bibliography.- 14.
The System. Collections Namespace.- 14.1 Introduction.- 14.2 Using the Hashtable Class.- 14.3 Using the SortedList Class.
- 14.4 A Spelling Checker.- 14.5 Summary.- 14.6 Bibliography.- 15. Operator Overloading.
- 15.1 Complex Numbers.- 15.2 Complex Arithmetic in Other Languages.- 15.3 Complex Numbers Using the Float Data Type.- 15.4 Complex Numbers Using the Double Data Type.
- 15.5 Complex Arithmetic Using Implicit Type Conversions.- 15.6 Complex Arithmetic Using Explicit Type Conversions.- 15.7 Arrays of Complex Numbers.- 15.8 Summary.
- 16. An Introduction to Windows Programming.- 16.1 Introduction.- 16.2 The .Net IDE.- 16.
2.1 Other Languages and the .Net Environment.- 16.2.2 Visual Development.- 16.3 Buttons and Event Handling Using a MessageBox Control.
- 16.3.1 Getting Help when Writing Programs.- 16.3.2 Running the Program.- 16.4 Using a TextBox to Accept User Input.
- 16.5 Using a RichTextBox to Display Program Output.- 16.6 Using a PictureBox to Display an Image.- 16.7 Selecting a File with the OpenFileDialog Control.- 16.8 Text and Graphics Using GDI+.
- 16.8.1 GDI+.- 16.8.2 Creating Graphical Images with GDI+.- 16.8.
3 Rendering with GDI+.- 16.8.4 Coordinate Systems.- 16.8.5 The OnPaint Method.- 16.
8.6 Graphics Objects.- 16.8.7 Simple Example Using the DrawLine Method.- 16.8.8 Default Coordinate System: Plotting Sines and Cosines.
- 16.8.9 Alternate Coordinate System: Plotting Sines and Cosines.- 16.8.10 Simple Text Example.- 16.9 Converting a Console to a Windows Application.
- 16.10 Bibliography.- 17. Additional Language Features.- 17.1 Events and Event Handling.- 17.2 Interfaces.
- 17.3 Attributes.- 17.4 Delegates.- 17.5 Windows-based Programming.- 17.6 Namespaces.
- 17.7 Assemblies and Versioning.- 17.8 Bibliography.- 18. Where Next?.- 18.1 Online Documentation.
- 18.2 Examples.- 18.3 Tutorials.- 18.4 Wizards.- 18.5 Web Sources.
- 18.6 Books.- 18.7 Microsoft.- 18.8 Source Code.- 18.9 Coda.
- Appendix A.- Default Coordinate System Example in C++.