Articles
Deep dives on .NET, React, cloud and everything in between — written by engineers, reviewed for accuracy and free to read.
In-depth Guides
Learn with real examples
Hands-on Tutorials
Build and practice
Interview Ready
Concepts, patterns & FAQs
C# Programming
Learn C# fundamentals, OOP, LINQ, collections, asynchronous programming and advanced concepts.
C# fundamentals
Nullable Types and Null Handling in C#
Sometimes a variable may not have a value. For example, a customer may not have provided a date of birth. C# provides nullable types and special operators to handle such situations safely. These features are useful when working with databases, APIs and user input.
C# fundamentals
Boxing and Unboxing in C#
Boxing converts a value type into an object reference. Unboxing retrieves the original value type from that object. These operations are useful when working with APIs and collections that store values as objects. Understanding them also helps us avoid unnecessary memory allocations and runtime errors.
C# fundamentals
Value Types vs Reference Types in C#
These types decide how data is stored and what happens when we assign one variable to another. Understanding this concept is important when working with objects, methods, collections and memory management in .NET applications.
C# fundamentals
Var vs Dynamic vs Object in C#
All three can store values, but they work differently. Understanding these differences helps us write safer code, avoid runtime errors and choose the right variable type in our applications.
C# fundamentals
Anonymous Methods and Lambda Expressions in C#
Both let us write a function without giving it a separate method name. They are useful when passing small pieces of logic to another method, especially with events, LINQ and collections. An anonymous method uses the delegate keyword. A lambda expression uses the => operator and usually gives us shorter, cleaner syntax.
C# fundamentals
Extension Methods in C# – Extend Existing Classes
A derived class is a class that inherits from another class. Extension methods make existing types easier to work with. You will commonly see them in LINQ, string helpers and reusable utility code.
C# fundamentals
Yield Return and Yield Break in C#
The yield keyword helps a method return items one at a time instead of creating and returning a complete collection. This is useful when processing large datasets, reading files, or generating values on demand. The method becomes an iterator, which means it produces values as the caller requests them. yield break is used to stop producing values early.
C# fundamentals
Ref vs Out Parameters in C# – Differences with Examples
Both keywords allow a method to modify a variable supplied by the caller. Normally, a method receives a copy of a value. With ref and out, the method works with the caller's variable itself. They are useful when a method needs to return or update multiple values.
C# fundamentals
Async and Await in C# – Asynchronous Programming
Async and await help applications perform operations without blocking the current thread while waiting for work to finish. A thread is a path of execution in a program. This is especially useful for database calls, API requests and file operations. It helps applications remain responsive while waiting for external operations.