1. What is C#?
C# (pronounced "C sharp") is a modern, object-oriented programming language designed by Microsoft as part of the .NET framework. It is used to build Windows desktop applications, web applications, games, and mobile apps.
2. What is the difference between C# and .NET?
C# is a programming language, while .NET is a framework that supports multiple programming languages, including C#. C# is used to write code for .NET applications.
3. What is a class in C#?
A class is a blueprint for creating objects in C#. It defines the properties and behaviors of an object. Objects are created from a class using the new keyword.
4. What is an interface in C#?
An interface is a collection of abstract methods and properties that a class can implement. It defines a contract between the interface and the implementing class, ensuring that the class implements all the methods and properties defined by the interface.
5. What is inheritance in C#?
Inheritance is the process of creating a new class from an existing class. The new class, called the derived class, inherits all the properties and behaviors of the existing class, called the base class. The derived class can also add new properties and behaviors.
6. What is polymorphism in C#?
Polymorphism is the ability of an object to take on many forms. In C#, polymorphism is achieved through inheritance and interfaces. A derived class can inherit properties and behaviors from a base class, and can also implement interfaces, which define additional properties and behaviors.
7. What is a delegate in C#?
A delegate is a type that represents a method signature. It is similar to a function pointer in C++. Delegates are used to pass methods as arguments to other methods, or to store a reference to a method in a variable.
8. What is a lambda expression in C#?
A lambda expression is a shorthand notation for defining a delegate. It allows you to define a method inline, without having to create a separate method. Lambda expressions are often used in LINQ queries.
9. What is LINQ in C#?
LINQ (Language-Integrated Query) is a set of features in C# that allow you to query and manipulate data from different sources, such as databases, XML files, and collections. LINQ uses a uniform syntax, making it easy to learn and use.
10. What is garbage collection in C#?
Garbage collection is the automatic process of deallocating memory that is no longer being used by an application. In C#, the garbage collector runs in the background and periodically checks for objects that are no longer being used. When it finds such objects, it deallocates the memory they were using.
11. What is an exception in C#?
An exception is an error condition that occurs during the execution of a program. C# provides a mechanism for handling exceptions, allowing you to catch and handle errors that may occur during runtime.
12. What is the difference between an exception and an error in C#?
In C#, an exception is a type of error that occurs during runtime, while an error is a more general term that can refer to any type of problem that occurs during the development or execution of a program.
13. What is a namespace in C#?
A namespace is a way of organizing related classes and other types in C#. It helps to avoid naming conflicts between different classes and ensures that each class has a unique name.
14. What is a static class in C#?
A static class is a class that contains only static members. It cannot be instantiated, and all its members are accessed using the class name, rather than an instance of the class.
15. What is an abstract class in C#?
An abstract class is a class that cannot be instantiated. It is used as a base class for other classes, and it defines a set of abstract methods and properties that its derived classes must implement.
16. What is a sealed class in C#?
A sealed class is a class that cannot be inherited. It is often used to prevent other classes from modifying or extending its functionality.
17. What is a partial class in C#?
A partial class is a class that is split into multiple files. Each file contains a portion of the class definition, and all the parts are combined at compile time to create the final class.
18. What is the difference between a struct and a class in C#?
In C#, a struct is a value type, while a class is a reference type. Structs are typically used for small, simple objects, while classes are used for more complex objects.
19. What is the difference between an interface and an abstract class in C#?
In C#, an interface defines a set of methods and properties that must be implemented by a class, while an abstract class can provide both abstract and concrete implementations. Also, a class can implement multiple interfaces, but can only inherit from one abstract class.
20. What is the difference between a stack and a heap in C#?
In C#, the stack is used for storing value types and reference pointers, while the heap is used for storing reference types. Value types are stored directly on the stack, while reference types are stored on the heap, with a reference pointer to their memory location on the stack.
21. What is the difference between a value type and a reference type in C#?
In C#, a value type stores its value directly on the stack, while a reference type stores a reference to its value on the heap. Value types are usually simple types like integers and floats, while reference types are more complex types like classes and arrays.
22. What is the difference between a private and a protected member in C#?
In C#, a private member is only accessible within the class that defines it, while a protected member is accessible within the class that defines it and any derived classes.
23. What is the difference between the "==" operator and the "Equals" method in C#?
In C#, the "==" operator compares the values of two variables or objects, while the "Equals" method compares the values of two objects. The "==" operator can be overloaded by a class, but the "Equals" method cannot.
24. What is the difference between an event and a delegate in C#?
In C#, an event is a mechanism for notifying other objects when a particular action occurs, while a delegate is a type that represents a method signature. An event is based on a delegate, but it adds additional functionality, like the ability to subscribe to and unsubscribe from the event.
25. What is a generic type in C#?
A generic type is a type that is defined with one or more type parameters, which can be replaced with specific types when the type is instantiated. This allows you to create classes and methods that can work with any type, without having to define a separate class or method for each type.
26. What is the difference between a nullable type and a non-nullable type in C#?
In C#, a nullable type can have a value of null, while a non-nullable type cannot. Nullable types are useful when you need to represent the absence of a value, like when working with databases or user input.
27. What is a constructor in C#?
A constructor is a special method that is used to initialize an object when it is created. It has the same name as the class and does not have a return type.
28. What is the difference between a default parameter and an optional parameter in C#?
In C#, a default parameter has a default value that is used if no value is provided when the method is called, while an optional parameter is a parameter that can be omitted when the method is called. Default parameters are defined at compile time, while optional parameters are defined at runtime.
29. What is the difference between a synchronous and an asynchronous method in C#?
In C#, a synchronous method blocks the calling thread until it completes, while an asynchronous method allows the calling thread to continue executing while the method runs in the background. Asynchronous methods are useful for performing long-running or I/O-bound operations without blocking the UI thread.
30. What is a thread in C#?
A thread is a lightweight process that can run in parallel with other threads. C# provides built-in support for creating and managing threads, allowing you to write multithreaded applications.
31. What is a namespace in C#?
A namespace is a way to group related types in C#. It provides a way to avoid naming conflicts between types with the same name, and also allows you to organize your code into logical units.
32. What is the purpose of the "using" statement in C#?
The "using" statement in C# is used to declare a scope in which a resource will be used, and to automatically dispose of the resource when the scope is exited. This is often used with file or database connections to ensure that the connection is properly closed, even if an exception is thrown.
33. What is a property in C#?
A property in C# is a member of a class that provides a way to read or write the value of a private field. It is often used to encapsulate the state of an object and to control access to that state.
34. What is a static class in C#?
A static class is a class that cannot be instantiated and contains only static members. It is often used to group related utility methods or constants.
35. What is the difference between an IEnumerable and an IQueryable interface in C#?
In C#, an IEnumerable interface is used for working with in-memory collections, while an IQueryable interface is used for working with data sources that can be queried, like databases. The main difference between them is that IQueryable allows for deferred execution, which means that the query is not actually executed until the results are accessed.
36. What is a Lambda expression in C#?
A Lambda expression is a concise way to define an anonymous function in C#. It allows you to write a block of code that can be used as a parameter to a method or assigned to a delegate.
37. What is a LINQ in C#?
LINQ (Language Integrated Query) is a set of language features and APIs in C# that allows you to query data from various sources using a consistent syntax. It provides a way to work with data from in-memory collections, databases, and XML documents.
38. What is a delegate in C#?
A delegate in C# is a type that represents a method signature. It can be used to define methods that can be passed as parameters or returned as values, and can be used to implement events and callbacks.
39. What is an extension method in C#?
An extension method in C# is a static method that is defined in a static class, and appears to be a member of another class. It provides a way to extend the functionality of existing classes without modifying the original class.
40. What is a finalizer in C#?
A finalizer in C# is a special method that is called by the garbage collector when an object is about to be collected. It is used to release unmanaged resources, like file handles or database connections, that the object might be holding onto.
41. What is a thread in C#?
A thread in C# is the smallest unit of execution that can be scheduled by the operating system. It allows you to perform multiple tasks at the same time within a single program.
42. What is the difference between a value type and a reference type in C#?
In C#, a value type is a type that stores its value directly in memory, while a reference type is a type that stores a reference to its value in memory. Value types include primitive types like integers and floating-point numbers, while reference types include classes and arrays.
43. What is an indexer in C#?
An indexer in C# is a special property that allows you to access the elements of a collection using an index, like an array. It provides a way to make collections of objects more intuitive to use.
44. What is a try-catch block in C#?
A try-catch block in C# is used to handle exceptions that might be thrown by code within the try block. If an exception is thrown, control is transferred to the catch block, where you can handle the exception or propagate it to a higher level of the program.
45. What is a throw statement in C#?
A throw statement in C# is used to explicitly throw an exception. It can be used to signal an error condition or to propagate an exception up the call stack.
46. What is the difference between the "==" operator and the "Equals" method in C#?
In C#, the "==" operator compares the values of two objects, while the "Equals" method compares the values of two objects for equality. The "==" operator is overloaded for some types to provide value-based comparison, but for reference types, it compares the references themselves.
47. What is the difference between a private and a protected member in C#?
In C#, a private member is accessible only within the class in which it is defined, while a protected member is accessible within the class and any derived classes.
48. What is the difference between a sealed class and a static class in C#?
In C#, a sealed class is a class that cannot be inherited from, while a static class is a class that cannot be instantiated and contains only static members. Sealed classes can be instantiated, but cannot be subclassed, while static classes cannot be instantiated or subclassed.
49. What is a constructor in C#?
A constructor in C# is a special method that is used to create and initialize objects of a class. It has the same name as the class and does not have a return type. Constructors can be overloaded to allow for different ways to create objects.
50. What is the difference between the "ref" and "out" keywords in C#?
In C#, both "ref" and "out" are used to pass arguments by reference to a method. The main difference is that the "out" keyword is used when the method must assign a value to the argument, while "ref" is used when the argument already has a value that can be modified by the method. Additionally, an "out" parameter must be assigned a value before the method returns, while a "ref" parameter can be left unchanged.