What you will learn
- Writing clean and efficient C# code
- Designing and implementing object-oriented solutions
- Building web applications with ASP.NET Core
- Creating desktop applications using Windows Forms and WPF
- Accessing databases with Entity Framework
- Implementing asynchronous programming for responsive applications
- Conducting unit testing for code reliability
Beneficial for
- Programmers with a background in other languages
- Computer Science Students
- Software Developers transitioning to C#
- Professionals aiming to expand their .NET skills
Course Pre-requisite
- Basic understanding of programming concepts (any language).
- Familiarity with object-oriented programming is beneficial but not required.
Course Outline
C# Fundamentals
Namespaces, Input and Output
Operators and Control Constructs
Value data types, Arrays, and References
Method Parameters
Using params
Using ref
Using out
Class Design
Fields, Properties, Accessors
Constructors, Destructors, this keyword
Method Overloading
Static Fields and Methods
Inheritance
Polymorphism with virtual and override
Using base with Constructors and Methods
Classes and Structs
Abstract Classes and Methods
Sealed Classes
The Object Class
Boxing and Unboxing
Creating and Using Structs
Exception Handling
try, catch, throw, finally
Exception Objects
Interfaces
Implementing and Extending Interfaces
The is and as Operators
Interfaces vs. Abstract Classes
Qualified Interfaces
Resource Management
Delegates
The delegate keyword
Assigning Methods to Delegates
Anonymous Methods, Lambda Expressions
Events
The event keyword
Publish-Subscribe Pattern
Event Properties and Handlers
Callbacks
Using AsyncCallback and IAsyncResult
Standard Events
Using EventHandler and EventArgs
Windows Forms
Controls and Components
Label, Button, TextBox, CheckBox
ComboBox, RadioButtons, ListBox
DateTimePicker, ImageList, Panel
FlowLayoutPanel and TableLayoutPanel
Window Applications
Window Events
MenuBars, MenuItems, Status Bars
The Thread Class
Starting Threads, Thread Priorities
Timer Threads
Interlocked, Monitor, and lock()
Generics
Generic Methods and Classes
Generic Delegates
Collections
Indexers
Stack and Queue
ArrayList, List, LinkedList
Dictionary
File and Directory Management
Reading and Writing Text Files
Reading and Writing Binary Files