C# Programming
Overview
C# as a language is elegant and powerful. But to utilize its capabilities fully, you need to have a good understanding of how it works with the .NET Framework. This course explores several important interactions between C# and the .NET Framework, and it includes an introduction to major classes for collections, delegates, and events. It includes a succinct introduction to creating GUI programs using Windows Forms.
Cumulative graded assessments available for group training.
Duration
40 hours
Who Should Take This Course
Audience
This course is intended for developers with programming language experience. This class is not designed for students who are completely new to programming; it is targeted at developers with proficiency in at least one other language (C, Python, Java, etc.).
Prerequisites
Students should have completed our Python Programming class or have equivalent experience with a programming language.
Why You Should Take This Course
Upon completion of this course, students will be able to:
• Configure and use the Visual Studio environment for C# program development
• Use basic C# language features to compile and execute C# code
• Build C# applications in the .NET framework
• Use C# for object-oriented programming
• Implement simple GUI programs using Windows Forms
Course Outline
C# Programming
-
.NET: What You Need To Know
- .NET Executables and the CLR
- A .NET Testbed for C# Programming
- Using Visual Studio
-
First C# Programs
- Hello, World
- Namespaces
- Variables and Expressions
- Using C# as a Calculator
- Input/Output in C#
- .NET Framework Class Library
-
Data Types in C#
- Data Types, Integer Types, Floating Point Types, Decimal Type, Boolean Type,
- Nullable Types
- Characters and Strings
- Conversions
-
Operators and Expressions
- Operator Cardinality
- Operators (Arithmetic, Relational, Logical, Bitwise, Assignment)
- Expressions
- Checked and Unchecked
-
Control Structures
- If Tests
- Loops
- Arrays
- Foreach
- Switch
-
Object-Oriented Programming
- Objects and Classes
- Inheritance and Polymorphism
- Object-Oriented Languages
- Components
-
Classes
- Classes as Structured Data
- Methods
- Constructors and Initialization
- Static Fields and Methods
- Constant and Readonly
-
More about Types
- Value Types
- Boxing and Unboxing
- Reference Types
- Implicitly Typed Variables
-
Methods, Properties and Operators
- Methods
- Parameter Passing
- Method Overloading
- Variable-Length Parameter Lists
- Properties
- Auto-Implemented Properties
- Operator Overloading
-
Characters and Strings
- Characters
- Strings, String Input, String Methods
- StringBuilder Class
- Programming with Strings
-
Arrays and Indexers
- Arrays, System Array, Jagged Arrays, Rectangular Arrays
- Random Number Generation
- Arrays as Collections
- Indexers
-
Inheritance
- Single Inheritance
- Access Control
- Method Hiding
- Initialization
-
Virtual Methods and Polymorphism
- Virtual Methods and Dynamic Binding
- Method Overriding
- Fragile Base Class Problem
- Polymorphism
- Abstract Classes
- Sealed Classes
- Heterogeneous Collections
-
Formatting and Conversion
- ToString
- Format Strings
- String Formatting Methods
- Type Conversions
-
Exceptions
- Exception Fundamentals
- Structured Exception Handling
- User-Defined Exception Classes
- Inner Exceptions
-
Interfaces
- Interface Fundamentals
- Programming with Interfaces
- Using Interfaces at Runtime
- Resolving Ambiguities
-
.NET Interfaces and Collections
- Collections
- IEnumerable and IEnumerator
- Copy Semantics and ICloneable
- Comparing Objects
- Generic Types
- Type-Safe Collections
- Object Initializers
- Collection Initializers
- Anonymous Types
-
Delegates and Events
- Delegates
- Anonymous Methods
- Lambda Expressions
- Events
-
Introduction to Windows Forms
- Creating Windows Applications Using Visual Studio
- Partial Classes
- Buttons, Labels and Textboxes
- Handling Events
- Listbox Controls