Complete C# Masterclass
Master C# Programming from A to Z. Dive deep into .NET, OOP, Clean Code, LINQ, WPF, Generics, Unit Testing, and more.
Master C# Programming from A to Z. Dive deep into .NET, OOP, Clean Code, LINQ, WPF, Generics, Unit Testing, and more.
Learn C# from A to Z with this Masterclass and become a C# Software Developer.
In this course, you are going to discover how to become a C# developer by learning all the real-world software development skills that you'll need.
Are you ready to dive deep into the world of C# and .NET framework development?
I have created a course that makes the path to becoming a skilled C# developer as easy as possible, all with this C# Masterclass!
You start off by learning the C# basics and programming concepts in general:
Variables
Arrays
If Statements
Loops
Building Algorithms & Logic
Then you learn the pillars of object-oriented programming:
Classes
Methods
Objects
Inheritance
Polymorphism
Clean Code
SOLID principles
Once you mastered them, you will go into advanced C# Topics, such as:
Events
Delegates
Interfaces
Generics
Databases
LINQ
WPF
Unit Testing
The C# Masterclass is full of amazing exercises and best practices that'll help you get into professional C# development in a fast and fun way.
In addition to the C# development topics you'll also dive into some of the most popular Frameworks that C# developers use around the world! Such as WPF for building Desktop applications and Unity for building Games.
I'm here to help!
I know that learning to code can be hard at times, and sometimes you just get stuck. But no worries, I am here to help you. Me and my team answer each question as quickly as we can and make sure that you reach your goal of becoming a developer.
Who is this course for?
The course is for anyone, who wants to learn C# and wants to become professionally good in C# programming. No experience is required whatsoever. It is designed so that anyone who can handle a mouse and keyboard will succeed in finishing it.
Full 30-Day Money-Back Guarantee
This course comes with a 30-day full money-back guarantee. Take the course, watch every lecture, and do the exercises, and if you are not fully satisfied, ask for a full refund within 30 days. All your money back, no questions asked.
About me, your instructor:
My name is Denis Panjuta, and in my courses, I have taught over 500.000 students how to code. I have a Bachelor of Engineering from the University of Applied Sciences in Constance (Germany). I love teaching and creating high-quality courses. My mission? Teaching 10.000.000 people how to code.
See, this is the only C# course you will ever need.
You will learn all the C# skills that you need to know to succeed in C# and .NET coding!
Don’t waste any more time and become a C# software engineer by starting this course now.
FAQ area empty
Introduction
106 Xem trướcWhat Do You Want To Achieve?
129 Xem trướcSetting Up Visual Studio Community Edition for Windows (Latest Version)
Xem trướcDownloading and Installing Visual Studio
252 Xem trướcVisual Studio for Mac - What to do
299Visual Studio for Mac is No More – What Now?
Udemy Reviews Update
Xem trướcCreating our First Project and Hello World
237 Xem trướcHello World on a Mac
125 Xem trướcCHEATSHEET - Writing our First Program
History of Csharp
441Understanding Frameworks and Compiling
336Single line comments
81Top Level Statements - Documentation
435Using System Directives
132Using variables - String
332Understanding User Input and the Data Type String
475Take control over our console
107Quick VS UI overview, Folder Structure and understanding Compiler errors vs RunT
343C# Fundamentals Quiz
The different things you can build with C# and .NET
High Level Overview of Variables and Datatypes
265Coding Standards
234Naming Conventions
228Overview of Datatypes
445Data Types and ChatGPT
339Value vs Reference Type
200Variable Definition, Initialization and Assigning
160Simple Variables Introduction
0Intro Mini Project Addition Calculator
59Understanding Warnings in C# Development
Understanding Int Number Datatype and why we cant fit a string into it
288Using the Parse Method to Convert from String to Int
248Understanding Type Conversion in C#
Finalizing our Addition Calculator
353String Concatenation vs String Interpolation
165Using Decimal Numbers instead with Double
364Dots and commas with doubles
184Fixing some more bugs
358Implicit Conversion
235Explicit Conversion
386Conversion Helpers Parse and Convert
342Implicitly Typed Variables vs Explicitly Typed Variables
191Operators, order of Evaluation and some math basics
567Debugging, Breakpoints, Runtime Error and Compile time Error
554Debugging and Fixing Simple Bugs
Fixing Simple Bugs
0Char Datatype and UTF16 Smiley
237More String Manipulation with String Formatting
252Understanding Indexing in C#
Characters that are Reserved in C#
How to use special characters in strings with the escape character
203Special Characters and Escape Sequences
0C# Cheat sheets
Want to become an employed C# developer?
Additional materials
CHEATSHEET - Datatypes in C#
Logical Operators
193Logical Operators in C#
Datatype Bool
150If Statements
142OR and NOT operators
318AND operator
154Relational operators
303The Else Keyword
109DataType Bool and Conditional Statements
0Else If Keyword and Order of Importance
333Control Structures: If, Else, and Else If in C#
Equality Operator and not equal
306Nested If Statements
260Understanding the Scope of a variable
278Challenge Clubbing or no Clubbing
350One Line If Statements
149The Switch Statement - Keywords Switch
289Switch or If - which to choose
178CHEATSHEET - Decision Makking in C#
Using the Switch Statement
0Our Little Quiz App
492Using String Methods Trim and ToLower
276Incrementing and Pre-Incrementing
236Decrementing and Modulo Operator
331How to use try parse
347Advanced Conditionals and Loops
How to generate a random number
367ADVANCED EXERCISE: Building a Conditional-Based Calculator
0Loops Overview
115For Loop
364For Loop - Count down challenge
116Escape Characters r and n as well as Thread.Sleep
328CHALLENGE: Rocket Landing Simulation
Landing a Rocket with a for loop
159While loop and using it as a counter
315While loops where it really shines
343Guess the Number Challenge Solution
388Working with While Loops
Building a Text Adventure Game
622Do While Loops
257Solution Average Calculator
273Break and Continue
386Simple Array
363Declaring and setting values for arrays in the same line
227Foreach and length of an array
484Understanding Loops in C#
TwoDimensional Arrays
555ThreeDimensional Arrays
265CHEATSHEET - Loops in C#
Using Arrays
0Let´s talk about Jagged Arrays
ADVANCED EXERCISE: Working with Two-Dimensional Arrays and Loops
0Intro To Functions / Methods
428Void Method without Parameters
300Void Method with a Parameter Part 1
312Void Method with a Parameter Part 2
443Understanding Methods in C#
Scope of variables and parameters
188Quick lesson about Argument Promotion
Parameter Modifiers in C# (ref, out, and in)
Moving to the classical Template - Top Level Statements
534Moving our Methods outside of the Main Method
246Fields, instance variables and how they differ from local variables
305Variable and Scope Understanding
WeatherSimulator - Using Arrays, Random, and For Loops
619WeatherSimulator - Calculating the Average Temperature
425Mixing Doubles and Ints when Calculating
191WeatherSimulator - Getting the Min and Max Values of an array
294WeatherSimulator - Getting the Most common weather condition
710CHEATSHEET - Functons and Methods in C#
Recursion in C#
ADVANCED EXERCISE: Calculating Average Temperature
0Objects Intro
127Introduction To Classes And Objects
195Creating our First own Class
478Member Variable and Custom Constructor
437Properties - Autogenerated - to protect our member variable
359Defining how a property is set
508Modifying the Get of our Property Part 1
428Modifying the Get of our Property part 2
300Having Multiple Constructors
431Default Constructor and Use Cases
333Understanding Constructors
Methods in Classes
443Methods in Classes in more detail
457Expression Bodied Members in C#
What are Inner Classes in C#?
Partial Classes and Methods
Optional Parameters
252Named Parameters
178Operator Overloading in C#
Passing Arguments by Value and by Reference
Computed Properties and No Constructor
188Static Methods
419Using Static Methods
0Static Fields
182Static Keyword Considerations
The is Operator and the as Operator in C#
Public and Private Keywords
276ID Key and readonly
445Read Only Properties
168Working with Read-Only Properties
0Write Only Properties
315Const and ReadOnly
321Working with Read-Only Properties
Quiz Project Introduction
213QuizApp - Question Class
318Keyword This
201Displaying Questions
361Displaying Answers, Console.Write and Console.ForegroundColor
390Getting the UserInput and checking if it is right
348Displaying Multiple Questions and if we are right or wrong
476Displaying the Results
475CHEATSHEET - Object Oriented Programming in C#
ADVANCED EXERCISE: Creating a Class with Properties and Methods
0Presentation Lists Overview
456Declare a List, add and read List item
176Removing Items from a List
323Initializing a list with items
149Initializing a List with Items
0Sort() ing a list
164Working with Lists
FindAll
295Predicates and Lambdas
416Predicates with Find All and Delegates
336Any Method
180Using the Any Method on a List
0Using Lists with complex Objects
339List.Where() and getting a first touch point with LINQ
508Using LINQ with Lists
Legacy ArrayLists
685Legacy Hashtables
937Nullables in Csharp
420Dictionaries Part 1 - Declaring, Initializing and Adding Items
294Dictionaries Part 2 - Updating, Removing entries and Iterating through Dictionar
337Gracefully Adding and Updating Dictionaries
305Using a Complex Object as the Value of a Dictionary
454Using a Complex Object as the Value of a Dictionary
0Why use this Dictionary instead of an array
Another way to declare and initalize dicts plus string as key
369CHEATSHEET - Collections in C#
ADVANCED EXERCISE: Advanced Dictionary Operations
0Try And Catch
392Understanding Try-Catch
The Finally Keyword
230The Finally Keyword
0Try Catch, huh. Why not just use If Statements
142Debug Log
406Throw Keyword
364Managing multiple Types of Exceptions
401Exception Handling Techniques
Why the Default Exceptions rocks
249How Exceptions Work with the Call Stack
518How to Handle Exceptions Properly
CHEATSHEET - Debugging in C#
ADVANCED EXERCISE: Handling Multiple Exceptions
0Inheritance Base Class vs Derived Class
502(HAS-A) and (IS-A) Relationship in C#
The 3 slash 4 Types of Inheritance
366Access Modifiers and the Protected Keyword
363Method Overriding with override and virtual
285Method Hiding in C#
Sealed Methods in C#
Understanding Method Overriding
The Base Keyword and Why Inheritance even matters
299Abstract Classes and Methods in C#
Working with Inheritance and Base Keyword
0Constructor Inheritance 1 - Base Keyword with Constructors and How Properties ar
482Constructor Inheritance
350Constructor Inheritance
0When and Why Constructor Inheritance is Useful
94Constructor Inheritance and Usage
Constructor Inheritance with Multiple Derived Classes
505Every Class inherits from the Object class
315XML Comments Documentation
288Sealed keyword
242CHEATSHEET - Inheritance and more on OOP
ADVANCED EXERCISE: Advanced Method Overriding
0What and Why Interfaces - Including Syntax
287Implementing and using Interfaces - Exercise
226Challenge - Create a Cat Class that implements IAnimal
Solution Exercise - Create a Cat Class that implements IAnimal
84Implementing and Using Interfaces
0What is Polymorphism and why use it
167The second part of Polymorphism
263Understanding Polymorphism
Interface Reusability while using Polymorphism
678Understanding the difference of Polymorphism and Interfaces in our Payment Examp
395Polymorphism with Interfaces
0CHEATSHEET - Polymorphism + Adv OOP + Text File
Storing a Log Text File on your PC with your own text
274Creating a Folder on Your PC and Logging text there
315Decoupling Code and Enhancing Testability
591Dependency Injection in C# Made easy - So what is DI in C#?
Understanding Dependency in Dependency Injection
277Super Simple Constructor Dependency Injection
246Setter Dependency Injection
259Interface Dependency Injection and Comparison
348Understanding Dependency Injection
Dependency Injection Methods
0Multiple Inheritance in csharp
289Abstract Class vs Interface in C#
ADVANCED EXERCISE: Polymorphism with Interfaces
0Introduction to Structs
374Structs example get distance between two points
322Understanding Value Type vs Reference Type with Structs vs Classes
319Understanding Structs in C#
Enums in C#
329DateTime
1169MathClass
467ADVANCED EXERCISE: Using Structs with DateTime and Math
0Garbage Collection
521Introduction to Delegates
411Where to declare delegates
41Simple delegates example
259Quick Class! - What are Bubble Sort Algorithms?
Super quick intro to Generics
462Combining Generics with Delegates to make a sorting algorithm
765Multicast Delegates
271Understanding Multicast Delegates
GetInvocationList seeing which methods are in a multicast delegate
480Intro to Events - Publishers and Subscribers
561Real World example - Events - Temperature Monitor
510ADVANCED EXERCISE: Stock Price Alert System with Dynamic Thresholds
0Using EventArgs and EventHandler
896Understanding Events
What this chapter is about
105What is Regex
113So, what is Regex then?
Using dots and wildcards, Regex Matching, and Quantifiers
363Creating groups and ranges and using alternation constructs
373Finding Specific Patterns and some examples for our challenges
683CHALLENGE: Telephone number Challenge
191CHALLENGE: Mr and Mrs
206CHALLENGE: Web URL Challenge
112Using Regular expressions in CSharp
413ADVANCED EXERCISE: Extracting Email Addresses with Regex
0Setting Up WPF Projects in Visual Studio 2025
Common Mistakes, Errors, and Troubleshooting in WPF Development
Installing the WPF workload
90Creating a WPF project
124WPF project structure and code behind files
186Creating our first GUI Element
210Creating a grid with columns and rows
276Fixed, auto and relative sizing
213Creating a perfect grid
26WPF Challenge - Recreate this GUI
71WPF Challenge Solution - Recreate this GUI
237Column span and row span
120Creating GUI elements with C Sharp.mp4
262Element properties for styling and positioning
155Button click and event handlers
263Todo List application intro and project setup
151Creating the grid, button and text box
373Creating the scrollview and stackpanel
275Setting x name attributes for access
218Adding the todo creation logic
400Introduction ContentControl and UserControl
89Creating ContentControl and UserControl for login
242Designing the LoginView
352Displaying the LoginView UserControl
260Creating and displaying InvoiceView UserControl
333Data Binding introduction
148Setting up the data to bind
246One-Way data binding
324Two Way Databinding
92One Way To Source Databinding
132One Time Databinding
74ListBox introduction
313ListBox ItemSource
273ListBox ItemTemplate
294ListBox accessing selected data
359Next application (login functionality)
41Creating the project and login user control
297Adding the password box
332Environment variables
126Using the environment variable for login
370Password change event
255How to move on
49WPF Currency Converter - Project overview and setup
504WPF Currency Converter - Rectangles and Gradients
560WPF Currency Converter - Setting Up Stack Panel and Labels
813WPF Currency Converter - Customizing Buttons and Implementing Click Events
651WPF Currency Converter - Creating Input Fields with Text Box and Combo Box
560WPF Currency Converter - Binding Values to Combo Boxes
640WPF Currency Converter - Input Validation and Completing the Logic
700PROJECT CODE can be found HERE!
Databases Intro
64Setup MS SQL Server and VS For DB work
572Intro And Setting Up Our DataSet And Table
815Relationship or Associative Tables
847Showing Data in a ListBox
816Showing Associated Data
624Displaying all Animals In The ListBox
491Deleting From A Table With A Click
967Added Note - Adding the base tables and entries back
Delete Animals, Remove Animals and Add Animals Functionality
1020Updating Entries in Our Tables
953Databases Outro
39WPF Currency Converter - Building a Currency Converter with Database Integration
619WPF Currency Converter - Designing the User Interface for Currency Conversion
684WPF Currency Converter - Understanding Data Grid Functionality and Properties
612WPF Currency Converter - Setting up a Database for Currency Conversion
709WPF Currency Converter - Implementing SQL Connections for Database
809WPF Currency Converter - Implementing Save Button Functionality
618WPF Currency Converter - Adding a New Currency Entry
570WPF Currency Converter - Inserting and Editing Data in the Database
843PROJECT CODE can be found HERE!
Linq Intro
52Linq gentle Introduction
236Linq Demo
335Linq with Lists - and our University Manager Part 1
808Sorting and Filtering with Linq
910Creating collections based on other collections
412Linq with XML
1058Setting up the project for LinqToSQL
948Inserting Objects into our Database
1152Using assiociative tables with Linq
985Joining tables next level
562Deleting and Updating
810Linq Outro
33Clean Code Presentation
186Clarity and precision in naming
154Naming convention cases
257Special convention for naming private fields
126Naming classes and methods
66Naming boolean values
85Meaning through naming
212Writing good comments
272Code TODOs
120Code documentation through Summary
406Formatting code
172Organizing files and namespaces
237Method structuring
252Using braces
96DRY principle (Don't repeat yourself)
476KISS Principle (Keep it simple, stupid)
277Exception handling
331SOLID presentation
174Single Responsibility Principle (SRP)
431Open-Closed Principle (OCP)
393Liskov Substitution Principle (LSP)
415Interface Segregation Principle (ISP)
331Dependency Inversion Principle (DIP)
350Congrats on completing the C# clean code section
30An Introduction to C# Generics
504Creating a generic class
451Using a generic class type in a method
333Multiple generic types in a class
318Generic methods without generic classes
349Constraints for generics classes
195Custom interface constraint
345Constraints for generic methods
231Generic interfaces
329Constraints for generic interfaces
333Combing generic classes and generic interfaces
284Generic reflections
359Action<> generic delegate
390Func<> generic delegate
417Predicate<> generic delegate
270C# Delegates Challenge "Task Management System"
Generics Challenge Solution "Task Management System"
768Congrats on completing the generics section
28TDD Introduction
73What is TDD - Test Driven Development
224Create Project and Write First Test
313Refactoring and Adding Domain
316Adding Web API
510Test First Approach
619Assertion Message
282Fluent Assertions
416Test Conditions and Prerequisites
234Setting Up Flight Project
69Translating a Scenario to Test
601Red Green Refactor
270Given When Then Pattern And Avoid Overbooking Scenario Discovery
340Avoid Overbooking Scenario
451Test Trustwhortiness And Devils Advocate
388Practical Devils Advocate For Remaining Number of Seats
335Paremeterized Tests
325Discovering new scenarios by checking if the production code is complete.
709Refactoring "remember_bookings."
149Rules of TDD
254Scenario: Cancel bookings using Test-Driven Development Rules
602Handle Cancel Booking & No Booking Found
478How You Discover New Scenarios
140Application Layer Testing
168Scenario: Application Layer Booking Part One
556Scenario: Application Layer Booking Part Two
482Scenario: Application Layer Booking Part Three
455Configure In Memory Database
472Parameterize Book Flights Test
123Implementing Booking Service
485Refactoring Booking Service
213Create Test for Cancelling Bookings
541Finalize Cancel Booking
304Naming Conventions
166Test Suit as Documentation
115Application Layer
39Intro Unity Basics
155Installing Unity
Overview of the Unity Interface
463Creating your own Layout
226Player Movement
792Making Sure We Make Changes Correctly
185Physis Basics
275RigidBody - A Physical Body
578Colliders And Their Different Types
724Triggers
621Prefabs And GameObjects
311Components And More On Prefabs
252Keeping The Hierarchy Tidy
149Class Structure
538Mathf And Random Class
297Unity Basics Outro
107Pong Introduction
125Basics - UI Elements
407Basics - Accessing Text Through Code
344Basics - Buttons
348Basics - Switching Scenes
575Basics - Play Sound
532Project Outline - Pong
446Creating The Main Menu
903Switching Scenes and Using Buttons
541Building Our Game Scene
8382D vs 3D Colliders and Rigidbody For Our Ball
416Moving Our Ball Left And Right
674Racket Movement
583Bouncing Off Correctly
552Scoring System
502Restarting A Round
327The Game Over Screen
263Adding Sound To The Game
446Adding a Basic AI
317Chapter Summary
82Chapter Intro
45Zig Zag Intro
40Basics- Instatiating (Creating Via Code) An Object
302Basics - Invoke And InvokeRepeating For Delayed Calls And Repeated Calls
262Basics - Playerpreferences - Saving Data
398Basics - Raycast
468Setup For Zig Zag
451Setting The Perspective
443Moving The Character
388Make Camera Follow Player
212Animate The Character
810Start The Game
529Restart The Game
240Collecting Crystals And Increasing The Score
575Adding A Highscore
308Adding The Particle Effect
778Background Music Loop
386Procedural Creation Of Our Map
1253Chapter Intro
107Create Fruits And Explode Them
982Fruit Spawner
1012Creating Our Blade
818GUI and Bombs
1277Game Over and Restart
732Adding The Highscore
545Extend The Game
406Prepare Code For Android
395Test On An Android Device
241Make Some Adjustments
135Adding Unity Ads to Your Game
388Setting Up Your Device as Developer Device
80Adding Sound
585Visual Studio Community Edition (FREE)
A Windows (10) PC is required for the WPF and Database portions of the course
Learn the fundamentals of programming using C#
Learn how to use variables, methods, loops, conditions
Fully understand how OOP (object oriented programming) works and how to use it
Build beautiful GUIs (Graphical User Interfaces) with WPF (Windows Presentation Foundation)
Create video games using C# and Unity 3D
Learn how to handle errors and avoid them
Work with files, folders, text and paths in .NET framework
Learn how to use LINQ and Lambda Expressions
Learn how to use Databases with MSSQL
Learn advanced techniques like threading and asynchronus development
Learn how to use C# generics to build senior-level software
Learn Clean Code with SOLID and all of its best practices