1. What are the main components in OOP?
Object-Oriented Programming (OOP) has four main components:
1. Encapsulation: It is the bundling of data and the methods that operate on that data into a single unit or class.
2. InheritanceIt allows a class (subclass/derived class) to inherit properties and behaviors from another class (base class/par ent class).
3. Polymorphism:It allows objects of different types to be treated as objects of a common type, often achieved through method overloading and method overriding.
4. Abstraction: It is the concept of hiding the complex reality while exposing only the essential parts.
2. What is the usage of inheritance?
Inheritance allows a class to inherit properties and behaviors from another class. It promotes code reusability, as common attributes and methods can be defined in a base class and reused in derived classes. It helps in creating a hierarchy of classes, making the code more organized and maintainable.
3. What is the constructor, and what are the types of constructor?
A constructor is a special method in a class that is called when an object of that class is instantiated. It is used to initialize the object's state.
Types of constructors:
1. Default Constructor: Takes no parameters.
2. Parameterized Constructor: Accepts parameters to initialize the object.
3. Copy Constructor:Constructs a new object by copying the properties of an existing object.
4. Static Constructor: Initializes static members of a class. It is called only once when the class is first accessed.
4. What is the use of a private constructor with an example, and why do we use it?
A private constructor is used to prevent the instantiation of a class. It is often employed in scenarios like creating a class with only static members, or as part of a design pattern such as a Singleton pattern.
Example:
public class Singleton
{
private static Singleton instance;
private Singleton() // Private constructor
{
// Initialization code
}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
5. What is encapsulation in OOP with an example?
Encapsulation is the bundling of data and methods that operate on that data into a single unit (class). It helps in hiding the internal details of an object and only exposing what is necessary
Example:
public class Car
{
private string model;
private int year;
public void SetModel(string modelName)
{
model = modelName;
}
public string GetModel()
{
return model;
}
public void SetYear(int carYear)
{
if (carYear > 0)
{
year = carYear;
}
}
public int GetYear()
{
return year;
}
}
6. What is the difference between abstract and interface?
Abstract Class:
- Can have both abstract and non-abstract methods.
- Can have fields (variables).
- Supports constructor.
- Can have access modifiers for methods (public, private, protected, etc.).
- A class can inherit from only one abstract class.
Interface:
- Can only have abstract methods (methods without implementation).
- Cannot have fields (variables).
- No constructor.
- All methods are public by default.
- A class can implement multiple interfaces.
7. What is an object in OOP?
An object is an instance of a class. It is a self-contained unit that consists of both data (attributes) and methods (functions). Objects are created from classes and represent real-world entities.
8. What are the access modifiers in C#?
C# has several access modifiers:
- Public:Accessible from any other class or assembly.
- Private: Accessible only within the same class.
- Protected:Accessible within the same class or a derived class.
- Internal: Accessible within the same assembly.
- Protected Internal: Accessible within the same assembly or a derived class.
9. What is the difference between the continue and break statement in C#?
- Continue Statement: Skips the rest of the loop body and proceeds to the next iteration.
- Break Statement: Exits the loop or switch statement and continues with the next statement outside the loop or switch.
10. What is enumeration in C#?
Enumeration (enum) in C# is a value type that represents a set of named constants. It provides more meaningful names to numeric values, improving code readability.
Example:
public enum Days
{
Sunday,
Monday,
Tuesday,
// ...
}
11. What is an extension method, and why do we use it?
An extension method in C# allows you to add new methods to existing types without modifying them. It is a syntactic sugar that improves code readability and reusability.
Example:
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
}
}
12. Difference between `ref` and `out` in C#?
- ref`: Used to pass a variable by reference. The variable must be initialized before passing it to the method.
- `out`:Similar to `ref` but does not require the variable to be initialized before passing. The method must assign a value to the `out` parameter before it completes.
13. Can we use multiple catch blocks in a single try?
Yes, a single try block can have multiple catch blocks to handle different types of exceptions.
14. What is the difference between `const` and `readonly`?
- const:Value is constant and must be assigned at compile time. It is implicitly static and cannot be modified after declaration.
- readonly:Value is constant but can be assigned at runtime (in the constructor). It can have different values in different instances of the class.
15. What is boxing and unboxing in C#?
- Boxing: Converting a value type to the object type (boxing), usually when assigning a value type to a variable of type `object`.
- Unboxing: Converting an object type to a value type (unboxing), usually when extracting a value type from a variable of type `object`.
16. What is implicit and explicit?
It seems like there might be a typo or missing context in the question. If you meant something specific, please provide more details.
17. What is the use of the `using` statement?
The `using` statement in C# is used for resource management, especially when working with objects that implement the `IDisposable` interface. It ensures that the `Dispose` method of an object is called when the object is no longer needed, helping to release resources.
Example:
using (var fileStream = new FileStream("example.txt", FileMode.Open))
{
// Use the fileStream here
} // Dispose method is automatically called here
18. What is the difference between `string` and `StringBuilder`?
- `string`: Immutable (cannot be changed after creation). Concatenation creates a new string.
- `StringBuilder`:Mutable (can be changed after creation). Efficient for dynamic string manipulations due to in-place modification.
19. When will we use `string`, and when will we use `StringBuilder`?
- Use `string` when the value is not expected to change frequently, as it is immutable.
- Use `StringBuilder` when there are frequent modifications to the string, like concatenations in a loop, to avoid unnecessary string object creations.
20. What is the conditional operator in C#?
The conditional operator (`? :`) is a shorthand way to write an `if-else` statement. It returns one of two values based on the evaluation of a boolean expression.
Example:
int result = (a > b) ? a : b;
21. What is `DataAdapter` in ADO.NET?
`DataAdapter` in ADO.NET is a bridge between a dataset and a data source. It performs operations like filling a `DataSet` with data from a data source and updating a data source with changes made in the `DataSet`.
22. What is the difference between `DataSet` and `DataTable`?
- `DataSet`: A collection of one or more `DataTable` objects, relationships, and constraints.
- DataTable`: Represents one table of in-memory data.
23. What is object pooling in ADO.NET?
Object pooling in ADO.NET involves reusing database connection objects instead of creating a new one for each request. It improves performance by reducing the overhead of creating and destroying connections.
24. What is the difference between `ExecuteScalar` and `ExecuteNonQuery`?
- ExecuteScalar: Returns the first column of the first row as an object. Used for queries that return a single value (e.g., SELECT COUNT(*) FROM Table).
- ExecuteNonQuery: Used for executing commands that don't return data, such as INSERT, UPDATE, DELETE.
25. What are the objects/components in ADO.NET?
Key objects/components in ADO.NET include `Connection`, `Command`, `DataAdapter`, `DataReader`, `DataSet`, `DataTable`, and `Parameter`.
26. What is `SqlCommand` in ADO.NET with syntax?
`SqlCommand` is used to execute SQL commands against a database. Syntax for a simple SELECT query:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT * FROM TableName", connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
// Read data here
}
}
}
27. What is connected and disconnected architecture in ADO.NET?
- Connected Architecture:Maintains a continuous connection to the database while interacting with it. Uses `DataReader` for reading data directly from the database.
- Disconnected Architecture: Connects to the database, retrieves data into a `DataSet`, and then disconnects. The data is manipulated in-memory, and changes are later propagated back to the database.
28. What is connection pooling?
Connection pooling is a mechanism that enables reusing database connections instead of creating new ones for each request. It helps improve performance by reducing the overhead of establishing and closing connections.
29. What is a database?
A database is a structured collection of data organized for efficient retrieval, storage, and management. It typically includes tables, relationships, and constraints to ensure data integrity.
30. What is the difference between a primary key and a unique key?
- Primary Key: Ensures that each record in a table is unique and not null. It is used to identify a record uniquely in a table.
- Unique Key:Ensures that each value in a column is unique. Unlike a primary key, a unique key can contain null values (except in SQL Server).
31. What is a foreign key?
A foreign key is a field in a database table that is a primary key in another table. It establishes a link between the two tables, enforcing referential integrity.
32. What are the joins we have in SQL?
Common SQL joins include:
- INNER JOIN: Returns rows where there is a match in both tables.
- LEFT (OUTER) JOIN: Returns all rows from the left table and matching rows from the right table.
- RIGHT (OUTER) JOIN: Returns all rows from the right table and matching rows from the left table.
- FULL (OUTER) JOIN: Returns all rows when there is a match in either table.
33. How does a left join work?
A left join returns all rows from the left table and the matching rows from the right table. If there is no match, NULL values are returned for columns from the right table.
34. What is an index, and what is its usage?
An index in a database is a data structure that improves the speed of data retrieval operations on a database table. It works by creating an ordered representation of the indexed data, allowing the database engine to find rows more quickly.
35. What are constraints in SQL?
Constraints in SQL are rules applied to a column or a set of columns to enforce data integrity within a database. Common constraints include PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, etc.
36. What is a default constraint?
A default constraint in SQL specifies a default value for a column. If a value is not explicitly provided for the column during an INSERT operation, the default value is used.
37. What is a cursor in SQL?
A cursor in SQL is a database object used to traverse the result set of a query. It provides a mechanism to iterate over each row in the result set.
38. What is an alias keyword, and why do we use it?
In SQL, an alias is a temporary name assigned to a table or a column for the duration of a query. It is used to make column or table names more readable or to provide a shorter name
Example
SELECT employee_id AS empID, employee_name AS empName FROM employees;
39. What are the different types of functions in SQL?
Different types of functions in SQL include:
- Aggregate Functions: Perform calculations on a set of values and return a single value (e.g., COUNT, SUM, AVG).
- Scalar Functions:Return a single value based on input values (e.g., CONCAT, UPPER).
- Window Functions: Perform calculations across a set of table rows related to the current row.