Overview
Objectives
This C# course will enable delegates to develop applications in the C# programming language. Delegates will be able to program using the principles of object orientation. The course will also cover how to use the Visual Studio 2010 development environment to produce robust and maintainable applications.
Audience
This course is intended for the following types of software developers:
- New developers
- Developers who understand computer programming but may have learned programming by using a non-graphical language in a university
These developers want to build solutions by using C#; within the Microsoft .NET Framework. They also want to employ Object Orientated techniques to enhance their development skills.
Requirements
Before attending this course, students must have competency in the following areas:
- Familiarity and comfort with basic operating system functions such as file manipulation.
- Understanding of the basics of structured programming, including concepts such as flow control, variables and parameters, and function calls.
- At least 3 months experience developing applications in either a graphical or non-graphical environment, or equivalent knowledge.
Experience with object-oriented programming and concepts are not required.
Course Outline
Module 1. Principles of Object Orientation
- Creating models
- Classes & objects
- Encapsulation, specialisation & polymorphism
Module 2. Designing Applications with UML
- What Is UML
- UML Diagrams
- Use Case Diagrams
- Class Diagrams
- Interaction Diagrams
Module 3. Getting Started with C#
- C# and .Net
- The C# Language
- Visual Studio IDE
Module 4. C# Language Fundamentals
- Data Types
- Variables
- Constants
- Strings
- Statements
- Expressions
Module 5. Branching
- Conditional branching statements
- Unconditional branching statements
- Loops
Module 6. Operators
- Assignment
- Mathematical operators
- Increment & decrement
- Relational
Module 7. Classes and Objects
- Defining classes
- Constructors
- Static and instance members
- Destroying objects
Module 8. Inside Methods
- Overloading methods
- Encapsulating data with properties
- Returning multiple values
Module 9. Debugging
- Setting a breakpoint
- The Call stack
Module 10. Inheritance and Polymorphism
- Specialisation and generalisation
- Inheritance
- Polymorphism
- Abstract and sealed classes
- The root class: object
- Boxing and unboxing types
Module 11. Operator Overloading
- Using the Operator Keyword
- Creating Useful Operators
- Logical pairs
- Conversion Operators
Module 12. Structs
- Defining a Struct
Module 13. Interfaces
- Implementing and interface
- Implementing more than one interface
- Casting to an interface
- Extending and interface
Module 14. Arrays
- Declaring arrays
- Multidimensional arrays
- System.Array
- Indexers
Module 15. Collection Interfaces and Types
- The collection interfaces
- Array lists
- Queues and stacks
Module 16. Strings
- Creating strings
- Manipulating strings
- The StringBuilder class
Module 17. Throwing and Catching Exceptions
- The throw statement
- The try and catch statement
- How the call stack works
- Exception class methods and properties
Module 18. Delegates and Events
- Delegates
- Events
Module 19. Generics
- Generics: A Primer
- Parameterizing by data type
- System.Collections.Generics class