
Explore the .NET platform, CLR, and CLI/CLS concepts, and the multi-language ecosystem for desktop, web, and mobile apps, including C#, ASP.NET, and web services.
Explore the common language infrastructure (CLI) and how dotnet languages like C# compile to intermediate language (IL) and run on the CLR, which translates IL to native code.
Explore how the common language runtime drives dotnet execution by loading classes, managing memory, garbage collection, performing just-in-time compilation, handling exceptions, and enforcing security across threads.
Explore the dotnet framework architecture, including the CLR and the FCL, with emphasis on the BCL, ADO.NET, WinForms, WPF, ASP.NET, and the relationships among CLS and CTS.
Trace dotnet framework versions from 1.0 to 4.8.1 (2002–2022), match releases to CLR versions, and review key features per version (generics, WPF, data annotations, async, dotnet core) for C# evolution.
Explore dotnet core as a cross-platform, open-source subset of the dotnet framework with broad OS support and the renaming to DotNet after 3.1.
Visual Studio is the integrated development environment for dotnet applications. It supports dotnet framework and dotnet core to build desktop, web, and mobile apps, with IntelliSense, syntax highlighting, and debugging.
Introduce C sharp basics: objects, fields, methods, classes, and namespaces, and write your first C sharp application as you learn dotnet’s general purpose, object oriented, strongly typed language.
Introduce objects, classes, fields, and methods in C#, explaining class-based object-oriented programming, how objects model real things, and how fields and methods define data and behavior.
Learn how namespaces group related classes in C# 12. Use the dot syntax to access a class within a namespace, such as university or garage.
Discover the four token types in C# — keywords, operators, literals, and identifiers — with practical examples like class, void, plus, and System.Console.WriteLine.
Explore the evolution of C# by listing versions from 1.0 to 13, and outline key features like generics, nullable types, Linq, async/await, and more.
Master C# naming conventions by applying camel case to local variables and parameters, Pascal case to class, namespace, field, method, and property names, and underscore camel case for private fields.
Install Visual Studio 2022 from the official site, select the Community edition with .NET desktop development, sign in, customize the theme, and create a console app targeting .NET Framework 4.8.
Create your first C sharp application by defining a class with a static void main method in Visual Studio, and display output using System.console.writeline.
Explore the System.Console class in dotnet, using write, writeline, read key, read line, and clear to perform I/O in console apps; learn static usage, interactivity, and Pascal case naming.
Explore how variables store values in memory and live on the stack during method calls. Learn to declare, initialize, and use variables in C# with I/O and naming rules.
Explore the full set of C# operators, including arithmetic, assignment, increment/decrement, comparison, logical, concatenation, and the ternary operator, with explanations of pre and post forms and operator precedence.
Explore all forms of if statements in C# 12, including simple if, if-else, else-if, and nested if, and learn how control statements manage program flow.
Learn to implement switch case logic in C#, using break and default to handle multiple values, ensuring one case executes, with examples like month names, weekday names, and grade descriptions.
Explore while and do-while loops in c# 12, including initialization, condition checks, incrementation, and the for and foreach loops, and learn when to use do-while to guarantee one execution.
Understand how the for loop consolidates initialization, condition, and incrementation on one line. Compare it with while and do-while loops, and learn when to choose for versus while.
Master the break statement in C# 12 by terminating loops for, while, do-while, and switches, stopping iterations when a condition is met.
Learn how the continue statement in C# skips the current loop iteration and proceeds to the next value, contrasting it with break and showing practical use in loops.
Master nested for loops in C# 12 by combining an outer and inner loop to process branches and accounts, print sequences, and vary i and j, including reverse order.
Learn how the go to statement jumps within a single method using labels, with forward and backward jumps, and why it is discouraged in favor of for or while loops.
Create a login page for the banking project using a console app, reading username and password, validating against system and manager, then navigating to the main menu.
Validate the login, display the main menu with options like customers and funds transfer, read input via console.readline, parse to int, and loop with do-while and switch until exit.
Builds a banking project menu system by creating a customers menu and an accounts menu, using do while loops, switch cases, and methods to organize user input and navigation.
Explore object oriented programming fundamentals, including objects, classes, fields, and methods, and how the heap stores objects and enables current object method calls for scalable applications.
Learn the syntax for creating classes and objects in C#, including fields, methods, and constructors, and understand how objects are stored in the heap with reference variables.
Master the basics of classes and objects, including heap storage, reference variables, stacks for local variables, and core concepts like methods, fields, and access modifiers internal and public.
Explore fields in C# object oriented programming: syntax, modifiers (static, constant, read only), and how to declare and access fields inside a class across objects.
Explore how private, protected, private protected, internal, protected internal, and public modifiers control field visibility across classes and assemblies, including inheritance and cross-assembly access.
Create three product objects from the product class and access their fields with reference variables; compute total quantity in stock and practice finding the highest cost with an if statement.
Explore how static fields belong to the class memory rather than individual objects, can be accessed through the class name, and differ from instance fields in C# 12.
Explore constant fields in C# 12, shared by all objects and initialized at declaration. Access via the class name and learn how compile time replaces constants with literals.
Explore read only fields in C# 12, showing how they behave like instance fields yet cannot be modified after initialization, with inline or constructor initialization and real-world examples.
Define local constants with const in C# 12, using primitive types or strings initialized by a literal; values cannot change and can be accessed anytime. Reference types cannot be constants.
Explore fields in C# 12: distinguish instance versus static fields, learn access modifiers and field types, and understand initialization rules for const and readonly fields, plus memory allocation behavior.
Explore encapsulation in C# by grouping fields and methods into a class and hiding details with public getters and setters, illustrated by a product example with validation and tax calculation.
Explore encapsulation in C# by using private fields and public get and set methods; external code accesses only public members while private state remains hidden and used internally.
Learn how local variables and parameters work in instance, static, and method contexts, including stack allocation and argument passing. See examples in the set and calculate tax methods.
Explain how the this keyword refers to the current object in non-static methods, and why it is not available in static methods for accessing fields and methods.
Learn the difference between static and instance methods, how to manipulate static fields with static methods, and why static members belong to the class rather than objects.
Learn how to pass reference variables as arguments to a static method to manipulate multiple objects, compute total quantity, and understand encapsulation and abstraction in object-oriented programming.
Master default arguments and optional parameters in methods by assigning default values, enabling calls without input; see tax and interest rate examples using 10.5% and 4.5%.
Named arguments in C# 4.0 let you pass values by parameter name to improve readability when methods have many parameters; after a named argument, all following must be named.
Master method overloading in object-oriented programming by defining multiple methods with the same name but different parameters. See how varying argument types and counts select appropriate method for a call.
Explore how C# parameter modifiers determine how values are received by methods, especially the default modifier, where changes to the parameter do not affect the argument.
Learn how the ref parameter modifier enables two-way communication between a method and its caller, requiring a pre-initialized argument and the ref keyword on both sides.
Understand how the out parameter modifier in C# lets you return multiple values by using out, with the argument uninitialized at call and updated after method execution.
Explore out variable declaration in C# 7.0, declaring the argument inline with the out parameter and its type, without initialization, producing the value, e.g., 10.45.
Explore in parameter modifier in C# 7.2, which passes the argument value into the parameter while making it read-only to prevent accidental changes; use in for both argument and parameter.
Explore ref returns in C# 7.3, learning how a method can return a reference to a field and propagate updates to the original variable through a ref return.
Learn how the C# 12 params modifier lets a method receive multiple values as an array, accessible by index, and used only on the last parameter.
Explore local functions, a C# 7.0 feature that embeds small, reusable logic inside a method. Understand their scope, parameters, and return types, with an in-method average calculation example.
Explore static local functions in C# 8.0, learn they cannot access containing method variables, and see how to enable the feature by setting language version in the csproj.
Learn how recursion in C# uses a method calling itself to compute factorials, creating stack frames until a base case of zero returns one, guided by input handling.
Master C# methods by examining access modifiers, static vs instance methods, and the this keyword. Learn how named arguments, method overloading, and ref and out parameters return values.
Explore what type conversion is and when to use it, covering implicit casting, explicit casting, parsing, tryparse, and conversion methods with examples like int to long and string to boolean.
Explore implicit casting in C# 12, demonstrating automatic conversion from lower types like s byte to higher types such as int or double, without explicit syntax.
Learn explicit casting as manual type conversion, its lossy outcomes when destination types are too small, and when to use explicit vs implicit casting (int to float, int to byte).
Explain parsing as a type conversion in C#, converting digit-only strings to numeric types via the parse method, and raise a format exception for invalid input.
Learn how TryParse validates and converts a string to a numeric type using an out parameter, returning true on success and false on invalid input, avoiding exceptions.
Master converting values between primitive types with the System.Convert class, using static methods like ToString and ToByte, and handle the FormatException when needed, including int and string.
Master explicit casting or use conversion methods for all type conversions, and prefer TryParse over parse when converting strings to numbers to avoid format exceptions.
Explore C# constructors, including instance and static forms, parameterless and parameterized variants, implicit vs explicit constructors, constructor overloading, and the this keyword for field initialization and object initializers.
Explore static constructors that initialize static fields once, on first class access, unlike instance constructors that run per object; static constructors are public by default and cannot have parameters.
Understand parameterless and parameterized constructors in C#, including implicit default and explicit constructors, and learn how fields are initialized and how overloading works.
Learn constructor overloading in C#, creating parameterless and parameterized constructors with different parameter combinations: employee id, employee name, and job, to initialize fields and enable flexible object creation.
Discover how to use object initializers in C# to set fields and properties after a constructor runs, providing a flexible alternative when no matching constructor exists.
Master the nuances of constructors in C#, including instance and static constructors, default compiler-provided constructors, and constructor overloading, with guidance on parameterless constructors and object initializers.
Learn how properties guard fields in C sharp, using set and get accessors, validation logic, and auto implemented properties, including instance and static properties.
Discover read-only properties with get accessors for reading fields like salary, and write-only properties with set accessors that perform validations on tax.
Learn how automatic properties in C# 3.0 simplify code by using get and set without backing fields; the compiler creates an underscore field and supports access modifiers, including read-only properties.
Explores auto-implemented property initializers in C# 6.0, showing how to set default values for automatic properties, override per object, and rely on an automatically generated backing field.
Use properties to access private fields via public properties, with automatic properties for no validation. Properties validate or calculate values, protect fields, and offer read-only or write-only access.
Learn how C# indexers provide a shortcut to access an array stored inside a class via a public this indexer, with get and set accessors using index and value.
Learn to implement indexer overloading in C# by adding multiple indexers with int and string parameters, map names to indices with Array.IndexOf, and access values by index or name.
Explore inheritance in C#, including single, multiple, multi-level, hierarchical, and hybrid forms; access base class members with base, invoke base constructors, and override or hide methods.
Explore the five types of inheritance in C#, including single, multi-level, hierarchical, multiple inheritance via interfaces, and hybrid inheritance.
Learn how the base keyword enables a child class to access parent class members, resolving name conflicts and accessing parent fields, properties, methods, and constructors in C#.
Learn how to call the parent class constructor from the child class constructor using the base keyword in C# 12 to initialize parent and child fields.
Explain method hiding in C#, where a child class redefines a method with the same name and parameters to hide the parent method, using the new keyword to signal intent.
Override a parent method with the same name, parameters, and return type. Use virtual in the parent and override in the child to enable dynamic dispatch.
Understand how sealed classes prevent inheritance in C# 12 while allowing instantiation and member access. Use sealed to secure your design and avoid deriving from the class.
Apply the sealed modifier to overriding methods to prevent overrides in derived classes, and understand how sealed contrasts with virtual in C sharp.
Learn C# by doing, with real world projects.
Testimonials
- "I have completed other courses on C#. While some of those instructors are trully excellent, including Moshe Hamedani, and othe courses on PluralSight, indeed i swore by PluralSight before coming to Udemy, Mr Vardhan has to be commended. This is trully the most comprehensive course a new C# learner needs to form a solid understanding not only of the basics but intermediate level subjects. If you want to learn C# and have full confidence that you are at least intermediate level after your course, take this course. Thank you sir for your dedication to the learner. Too often instructors create courses with the learner not in mind, but just to get something decent out there. This is so thorough and presented so that you will understand without ambiguity Thank you again sir!." - David Odoom
- "By the way, your content is the best for .NET so far! I'm not exaggerating or flattering. I really mean it! I've checked other .NET courses too, but they don't have the quality that your content has. Your content not only helps to lay basic foundation of the concept, but it also enables to think and tackle the advanced use cases. And the beauty is that your course is absolutely consistent with the official docs. Please make more content." - Asadullah Ehsan
- "Great course, Focused on point with no distractions, straightforward, highly organized and really great effort. Thanks." - Nishma
- "As a computer engineering graduate, I can easily say that this course really helped me to brush up my C# skills and the tutor (Mr. Harsha) is a caring person. He usually answers your questions in 12 hours." - Tayfun Odabaşı
- "I have some programming experience. I like the flow of the instruction, and the fact that the quizzes allow for some creativity" - Michael
- "Best Teacher ever hope more success for you and more courses for us" - Mohmd alkhatib
- "I am still on the first sections of the course , but i wanted to write this review because this is a very good course on C# ,very clear in depth explanation and cover all the topics of C# , i only wish i have found this course sooner . update , i finished have the course still think this is the best C# course i have taking so far." - Moustamid Karim
- "I like the background info. Extra effort was put in the graphics. I'm early in the course, but look forward to the rest.." - Mark Workman
- "Concepts are explained in very well manner" - Akanksha
- "This course is amazing! Such a great instructor. Concepts are clearly and intelligently presented. I have a few C# courses and this one is by far my favorite. He doesn't just touch on a topic and bam you're on to the next one. He gives several examples and by the time that section is finished, you feel you really understand that concept. I can't give this course enough praise! I'm a professional C# dev and this course is helping fill in the gaps of my understanding. Thank you for such a great course!" - Business
- "Incredible course for anyone looking to start with C# and OOP. I'm halfway through, and thus far every single concept has been explained in an easy-to-understand manner. The instructor also does a fantastic job of reinforcing the topics he's discussing by reiterating them multiple times in different ways and in different scenarios." - Vincent
...and more reviews.
- - - -
POTENTIAL BENEFITS OF THIS COURSE
By the end of this course, you will create all of the source code for a complete C# project, by using collections as backend for storage.
You will type in every line of code with me in the videos ... all from scratch. No copy-paste of ready-made code.
I explain every line of C# code that we create. So this isn't a copy/paste exercise, you will have a full understanding of the code.
I am a RESPONSIVE INSTRUCTOR. Post your questions and I will RESPOND in 24 hours, ASAP.
All source code is available for download.
English captions are available.
- - - -
List of topics that ARE covered in this course:
- .Net Basics: Introduction to .NET, CLI, CLR, .NET Framework Architecture, Versions of .Net Framework, Overview of .Net Core, Introduction to Visual Studio, Basics of C#
- Language Basics: System.Console class, Variables, Primitive Types, Control Statements
- OOP Fundamentals: OOP Basics, Classes, Objects, Object References
- Fields: Fields, Static Fields, Constants, Readonly Fields
- Methods: Methods, Encapsulation, Abstraction, Polymorphism, Local Variables, Parameters, this keyword, Static methods, Default arguments, Named arguments, Method overloading, ref, out, out declaration, in, ref returns, params modifier, Local functions, Static local functions, Recursion
- Type Conversion: Type conversion, Implicit casting, Explicit casting, Parse, TryParse, Conversion methods
- Constructors: Constructors, Static constructors, Constructor overloading, Object initializer
- Properties: Properties, Readonly properties, Writeonly properties, Automatic properties, Automatic properties accessibility, Automatic property initializers, Indexers
- Inheritance: Inheritance, Various types of inheritance, base keyword, Calling parent class's constructor, Method hiding, Method overriding, Sealed classes, Sealed methods
- Abstract Classes and Interfaces: Abstract classes, Abstract methods, Interfaces, Dynamic polymorphism with interfaces, Multiple inheritance, Interface inheritance, Explicit interface implementation
- Namespaces: Namespaces, Nested namespaces, Importing namespaces, Creating using alias, Using static
- Partial & Static Classes: Partial classes, Partial methods, Static classes, Enumerations
- Structures: Structures, Readonly structures, Primitive types as structures
- System.Object: System.Object class, Overriding methods of System.Object class, Boxing, Unboxing
- Generics: Generic classes, Multiple generic parameters, Generic constraints, Generic methods
- Working with Null: Nullable types, Null Coalescing operator, Null propagation operator
- Extension Methods: Extension methods, Pattern matching, Implicitly typed variables, Dynamically typed variables, Inner classes
- Garbage Collection: Garbage Collection, Generations of GC, Destructors, Finalize, IDisposable, Using Declaration
- Delegates and Events: Single-Cast Delegates, Multi-Cast Delegates, Events, Auto-implemented events, Anonymous methods, Lambda expressions, Inline lambda expressions, Expression bodied members, Switch expression, Func, Action, Predicate, EventHandler, Expression Trees
- Arrays: Creating arrays, Arrays with for loop, Arrays with foreach loop, Methods of System.Array class, Mult-Dim arrays, Index from-end operator, Jagged arrays, Array of objects
- Collections: Working with various collections, List, Dictionary, SortedList, Hashtable, ArrayList, Stack, Queue, HashSet, typeof operator, Collection of objects, Object relations, IEnumerator vs IEnumerable, Iterators and Yield return, Custom Collections, ICollection, IList, IEquatable, IComparable, IComparer, Covariance and Contravariance
- Anonymous types, Tuples, Value Tuples, Discards, String, DateTme, StringBuilder, Math
- LINQ Basics
- Exception Handling
- System .IO namespace (File handling, Directory handling, File Streams)
- Serialization (Binary, Json, Xml)
- C# 9 and 10: Top level statements, File scope namespaces, Global using, Module initializer, Nullable reference types, Target-typed New expressions, Pattern Matching, Parameterless struct constructors, Records
- C# 11: Raw string literals, List pattern, Slice pattern, Var pattern, File local types, Required members, Auto default structs, Ref fields
- C# 12: Primary Constructors in Non-Record classes & structs, Collection Expressions, Default Parameters in Lambda Expressions, Alias any type
- C# 13: Params Collections, Partial Properties and Indexers, "field" Keyword, Implicit Index Access in Object Initializers
- Multi-Threading, Tasks, async/await
- - - -
PORTFOLIO PROJECT
A mini project, "Banking application", where the bank user can create / edit bank accounts and also can perform deposit, withdraw, balance enquiry, account statement etc. operations.
Some of the above features are given as assignments; so that you can exercise coding practices based on the guidelines provided.
- - - -
List of C# 3.0 New Features covered in this course:
Auto-Implemented Properties
Anonymous Types
Lambda Expressions
Expression Trees
Extension Methods
Implicitly Typed Local Variables / Type Inference
Partial Methods
Object Initializer
Collection Initializer
LINQ
List of C# 4.0 New Features covered in this course:
Dynamically Typed Variables
Named Arguments
Optional Arguments
Covariance and Contravariance
List of C# 5.0 New Features covered in this course:
Async & Await
List of C# 6.0 New Features covered in this course:
Static Imports (using static)
Exception Filters (catch when)
Auto-Implemented Property Initializers
Null Propagator
String Interpolation
nameof operator
List of C# 7.0 New Features covered in this course:
Out Variable Declaration
Tuples
Discards
Pattern Matching
Local Functions
Expression Bodied Members
List of C# 7.1 New Features covered in this course:
Default literals
Inferred Tuple Element Names
List of C# 7.2 New Features covered in this course:
'private protected' access modifier
'in' parameter modifier
List of C# 7.3 New Features covered in this course:
Ref returns
== operator on tuples
List of C# 8.0 New Features covered in this course:
readonly structs
Switch Expressions
Using Declarations
Static Local Functions
List of C# 9 and 10 New Features covered in this course:
Top level statements
File-scope namespaces
Global 'using'
Module initializers
Nullable reference types
Null forgiving operator
Target-typed 'new' expressions
Pattern Matching
Extended Property Pattern Matching
Init-only properties
Parameter-less struct constructors
Records
List of C# 11 New Features covered in this course:
Raw String Literals
List Pattern
Slice Pattern
Var Pattern
File Local Types
Required Members
Auto Default Structs
Ref Fields
List of C# 12 New Features covered in this course:
Primary Constructors in Non-Record Classes & Structs
Collection Expressions
Default Parameters in Lambda Expressions
Alias Any Type
List of C# 13 New Features covered in this course:
Params Collections
Partial Properties and Indexers
"field" keyword
Implicit Index Access in Object Initializers
- - - -
No Risk – Money-Back Guarantee
Finally, there is no risk. You can preview first few lectures of the course for free. Once you purchase the course, if for some reason you are not happy with the course, Udemy offers a 30-day money back guarantee.
So you have nothing to lose, sign up for this course and learn how to build C# Projects from scratch!
Key Points about this Course:
All C# programs are demonstrated using 'Console Applications' and 'Class Library' projects in Visual Studio 2019 / 2022.
Each concept is first explained theoretically like understanding what is that concept, different types / syntax to write code. And then we will show the same with a real-world-like scenario. At last, I'll explain where exactly we use this concept in real-word applications.
All the concepts explained in both theoretically, diagrammatically and practically.
Video lectures are not downloadable.
- - - -
The following topics are NOT covered in this course:
ADO .NET
Entity Framework
WPF / WCF
WinForms
Cryptography
Assemblies
This course is offered by Web Academy by Harsha Vardhan. Any watermark stating "Harsha Web University" is from our old branding and does not represent an academic institution. This course is for educational purposes only and is not affiliated with any university or degree-granting institution.