C# Interview Questions

C# interview questions test async/await, LINQ, the CLR, dependency injection, and the .NET ecosystem. C# (C Sharp) interviews for backend and enterprise roles often mix language questions with how you'd structure a real .NET application. This page covers 40 real C# interview questions with answers across four formats: multiple choice, written answers, spoken responses, and live coding challenges, the same mix used in modern technical interviews.

Practice each question in your browser with no signup required. Answers stay hidden until you attempt the question: type, speak, or code your response first, then compare it against the model answer. Questions range from fundamentals for your first developer job to scenario-based questions for senior roles, so you can find the gaps in your knowledge before the real interview.

40 questions with answersLast updated: Oct 19, 2026
Start a mock interview

How to practice

  1. Choose a question. Pick any of the 40 questions. They mix multiple choice, written, spoken, and coding, the same mix a real interviewer uses.
  2. Attempt your answer. Select a multiple-choice option, type your written response, record a spoken answer, or write code in the editor.
  3. Reveal the model answer. Once you have attempted the question, the model answer unlocks so you can compare it with yours.
  4. Move to the next question. Track how many questions you have attempted with the progress bar at the top of the page.
  5. Take a mock interview. When you are ready, try a full mock technical interview on Plaicer with AI-driven follow-up questions.

C# Interview Questions and Answers

0 of 40 attempted
1Multiple choice

How would you describe C# and what environments does it target?

Attempt the question first to reveal the answer.

2Written answer

Describe C#'s design goals and its relationship to the .NET ecosystem

Attempt the question first to reveal the answer.

3Spoken answer

Walk through how you would design a REST API using ASP.NET Core with proper dependency injection

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

4Coding

Write an async method that fetches data from multiple APIs concurrently and combines results

public async Task<CombinedData> FetchDataAsync(string id) {
    // Fetch from multiple APIs concurrently
}

Attempt the question first to reveal the answer.

5Multiple choice

Explain the Common Language Runtime and its role in executing C# programs

Attempt the question first to reveal the answer.

6Written answer

Explain how the CLR enables language interoperability and manages program execution

Attempt the question first to reveal the answer.

7Spoken answer

Describe a situation where you used async/await to improve application responsiveness

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

8Coding

Use LINQ to filter and transform a collection of products based on multiple criteria

public List<ProductSummary> GetDiscountedProducts(List<Product> products, decimal minDiscount) {
    // Use LINQ to filter and transform
}

Attempt the question first to reveal the answer.

9Multiple choice

What is the .NET Framework and how does it support C# development?

Attempt the question first to reveal the answer.

10Written answer

Describe the components of .NET and how .NET Core differs from the full Framework

Attempt the question first to reveal the answer.

11Spoken answer

Explain how you would implement the observer pattern using delegates and events

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

12Coding

Implement a generic repository class that works with any entity type

public class Repository<T> : IRepository<T> where T : class {
    private readonly DbContext _context;
    // Implement CRUD operations
}

Attempt the question first to reveal the answer.

13Multiple choice

How does LINQ enable querying data sources in C#?

Attempt the question first to reveal the answer.

14Written answer

Explain LINQ's deferred execution model and how it works with different data sources

Attempt the question first to reveal the answer.

15Spoken answer

Talk about a time you optimized LINQ queries by understanding deferred execution

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

16Coding

Create a class that publishes events when state changes occur

public delegate void OnStateChanged(StateChangedEventArgs args);

public class StateManager {
    public event OnStateChanged StateChanged;
    // Implement state change notification
}

Attempt the question first to reveal the answer.

17Multiple choice

Explain how properties provide controlled access to class members in C#

Attempt the question first to reveal the answer.

18Written answer

Explain how properties enable encapsulation while providing convenient access syntax

Attempt the question first to reveal the answer.

19Spoken answer

Describe how you would structure a large application using dependency injection and interfaces

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

20Coding

Implement a property with validation logic that throws exceptions for invalid values

public class User {
    private string _email;
    public string Email {
        get { return _email; }
        set {
            // Add validation
        }
    }
}

Attempt the question first to reveal the answer.

21Multiple choice

How do async and await keywords simplify asynchronous programming?

Attempt the question first to reveal the answer.

22Written answer

Describe how async/await works with Tasks to enable responsive asynchronous code

Attempt the question first to reveal the answer.

23Spoken answer

Explain your approach to handling exceptions in asynchronous operations

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

24Coding

Sort a list of employees by multiple criteria using lambda expressions

public List<Employee> SortEmployees(List<Employee> employees) {
    // Use OrderBy with lambda expressions
}

Attempt the question first to reveal the answer.

25Multiple choice

What are delegates and how do they enable callback mechanisms in C#?

Attempt the question first to reveal the answer.

26Written answer

Explain delegates and events, and how they enable observer patterns

Attempt the question first to reveal the answer.

27Spoken answer

Walk through how you would implement a custom LINQ provider for a specific data source

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

28Coding

Create a simple LINQ query that demonstrates method chaining

public List<string> ProcessOrders(List<Order> orders) {
    // Use LINQ methods: Where, Select, GroupBy, OrderBy
}

Attempt the question first to reveal the answer.

29Multiple choice

Explain lambda expressions and their role in functional programming in C#

Attempt the question first to reveal the answer.

30Written answer

Describe lambda syntax and how they integrate with LINQ and functional patterns

Attempt the question first to reveal the answer.

31Spoken answer

Describe how you would use generics to create a reusable repository pattern

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

32Coding

Implement a method that executes multiple async operations in parallel and waits for all

public async Task<T[]> ExecuteTasksInParallel<T>(params Task<T>[] tasks) {
    // Execute tasks in parallel
}

Attempt the question first to reveal the answer.

33Multiple choice

How does dependency injection improve code testability and flexibility?

Attempt the question first to reveal the answer.

34Written answer

Explain how DI containers manage object lifecycles and dependencies

Attempt the question first to reveal the answer.

35Spoken answer

Talk about migrating legacy code to use properties instead of public fields

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

36Coding

Implement IDisposable correctly to manage unmanaged resources

public class DatabaseConnection : IDisposable {
    private IntPtr _handle;
    // Implement Dispose pattern
}

Attempt the question first to reveal the answer.

37Multiple choice

How does automatic garbage collection in C# manage memory differently from manual approaches?

Attempt the question first to reveal the answer.

38Written answer

Describe generational garbage collection and the finalization/disposal pattern

Attempt the question first to reveal the answer.

39Spoken answer

Explain how you would implement a plugin system using reflection and dependency injection

This browser cannot record audio. Answer the question out loud anyway, then compare yourself against the model answer below.

Attempt the question first to reveal the answer.

40Coding

Use a dictionary to cache results and avoid redundant processing

public class DataCache {
    private Dictionary<string, CachedData> _cache;
    // Implement caching with dictionary
}

Attempt the question first to reveal the answer.

Topics covered

  • C# and .NET fundamentals: the CLR, .NET Framework vs modern .NET
  • Properties and encapsulation
  • Delegates, events, and lambdas
  • LINQ: filtering, chaining, deferred execution
  • Async programming: async/await, Task, Task.WhenAll
  • Async error handling
  • Memory: garbage collection, IDisposable
  • Dependency injection: containers and service lifetimes
  • ASP.NET Core: REST APIs and layered architecture
  • Patterns: generic repository, observer, reflection-based plugins

Frequently asked questions

How many C# interview questions are on this page?
40 real C# interview questions across four formats: multiple choice (10), written answer (10), spoken answer (10), and coding (10).
Do I need to sign up to practice?
No. All 40 questions and model answers are free with no signup. You attempt each question first, and the model answer unlocks once you have engaged.
Who are these C# interview questions for?
Developers preparing for C# technical interviews at any level, from first job to senior engineer roles. Questions cover fundamentals through real-world scenarios.
What topics do the C# questions cover?
The questions cover the CLR, modern .NET, properties, delegates, and events. They also test LINQ, async/await, and garbage collection. Other topics include dependency injection, ASP.NET Core, and patterns like the generic repository.
Can I practice coding questions in the browser?
Yes. Coding questions include starter code in an in-browser editor, so you can write your solution without installing anything.
How often are the questions updated?
The question bank is reviewed regularly and updated to reflect current C# interview patterns.
Can I take a full mock interview?
Yes. Plaicer's mock technical interview walks you through a realistic 30 to 45 minute interview with AI-driven follow-up questions.
Do the questions cover .NET Core or .NET Framework?
Modern .NET (.NET 5 and later, formerly .NET Core). One question explains how it differs from the older .NET Framework.

Pick your language

View all programming interview questions

Need to run some C# code first?

Online C# Compiler

Reading answers is not the same as giving them. Sit a full mock interview and get scored on how you actually explain them.

Try a mock interview