Showing posts with label Interview. Show all posts
Showing posts with label Interview. Show all posts

Tuesday, October 22, 2024

Dotnet framework interview questions and answers

 


1. What is the .NET Framework?

  • The .NET Framework is a software development platform developed by Microsoft.
  • It provides a consistent programming model and a comprehensive set of libraries to build various applications such as web, desktop, and mobile apps.
  • It consists of two major components:
    • Common Language Runtime (CLR): Handles memory management, exception handling, and garbage collection.
    • .NET Framework Class Library (FCL): Provides reusable classes and APIs for development.

Example:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, .NET Framework!");
    }
}

2. What is the Common Language Runtime (CLR)?

  • CLR is the heart of the .NET Framework, responsible for executing .NET programs.
  • It provides key services:
    • Memory management (using garbage collection).
    • Exception handling.
    • Thread management.
    • Security management.

Key Features of CLR:

  • Just-In-Time (JIT) Compilation: Converts Intermediate Language (IL) code to machine code.
  • Garbage Collection (GC): Automatically frees memory by removing objects that are no longer in use.

Example:

public class Example
{
    public void ShowMessage()
    {
        Console.WriteLine("CLR manages this execution.");
    }
}

3. What is the difference between .NET Framework and .NET Core?

  • .NET Framework:
    • Runs only on Windows.
    • Used for building Windows-specific applications like desktop apps.
    • Larger runtime and library support.
  • .NET Core:
    • Cross-platform (supports Windows, Linux, macOS).
    • Lightweight and modular.
    • Primarily used for web, cloud, and cross-platform apps.

4. What are Assemblies in .NET?

  • Assemblies are the building blocks of a .NET application.
  • An assembly is a compiled code that CLR can execute. It can be either an EXE (for applications) or a DLL (for reusable components).

Types of Assemblies:

  • Private Assembly: Used by a single application.
  • Shared Assembly: Can be shared across multiple applications (e.g., libraries stored in GAC).

Example:

// Compiling this code will create an assembly (DLL or EXE)
public class SampleAssembly
{
    public void DisplayMessage()
    {
        Console.WriteLine("This is an assembly example.");
    }
}

5. What is the Global Assembly Cache (GAC)?

  • GAC is a machine-wide code cache that stores assemblies specifically designated to be shared by several applications on the computer.
  • Assemblies in GAC are strongly named and allow multiple versions of the same assembly to be maintained side by side.

Example:

// To add an assembly to the GAC (in command prompt)
gacutil -i MyAssembly.dll

6. What are Namespaces in .NET?

  • Namespaces are used to organize classes and other types in .NET.
  • They prevent naming conflicts by logically grouping related classes.

Example:

namespace MyNamespace
{
    public class MyClass
    {
        public void Greet()
        {
            Console.WriteLine("Hello from MyNamespace!");
        }
    }
}

7. What is Managed Code?

  • Managed Code is the code that runs under the control of the CLR.
  • CLR manages execution, garbage collection, and other system services for the code.

Example:

// This is managed code because it's executed by CLR
public class ManagedCodeExample
{
    public void Print()
    {
        Console.WriteLine("Managed Code Example.");
    }
}

8. What is Unmanaged Code?

  • Unmanaged Code is code executed directly by the operating system, not under the control of CLR.
  • Examples include applications written in C or C++ that are compiled directly into machine code.

Example:

// Calling unmanaged code from C#
[DllImport("User32.dll")]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, int options);

9. What is the difference between Value Types and Reference Types in .NET?

  • Value Types:
    • Stored directly in memory.
    • Examples: int, float, bool.
  • Reference Types:
    • Store a reference (pointer) to the actual data in memory.
    • Examples: class, object, string.

Example:

// Value type
int x = 10;

// Reference type
string name = "John";

10. What is Boxing and Unboxing in .NET?

  • Boxing: Converting a value type to an object (reference type).
  • Unboxing: Extracting the value type from an object.

Example:

// Boxing
int num = 123;
object obj = num;  // Boxing

// Unboxing
int unboxedNum = (int)obj;  // Unboxing

 

11. What is the Common Type System (CTS)?

  • CTS defines all data types in the .NET Framework and how they are represented in memory.
  • It ensures that data types used across different .NET languages (C#, VB.NET, F#) are compatible with each other.
  • Value Types (stored in the stack) and Reference Types (stored in the heap) are both part of CTS.

Example:

// Value type
int valueType = 100;

// Reference type
string referenceType = "Hello";



12. What is the Common Language Specification (CLS)?

  • CLS defines a subset of the Common Type System (CTS) that all .NET languages must follow to ensure cross-language compatibility.
  • It provides a set of rules for data types and programming constructs that are guaranteed to work across different languages.

Example:

 // CLS-compliant code: using standard types
public class SampleClass
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

 

13. What is Just-In-Time (JIT) Compilation?

  • JIT Compilation is a process where the Intermediate Language (IL) code is converted to machine code at runtime.
  • It helps optimize execution by compiling code only when it is needed, thus saving memory and resources.

Types of JIT Compilers:

  • Pre-JIT: Compiles the entire code during deployment.
  • Econo-JIT: Compiles only required methods, reclaims memory afterward.
  • Normal JIT: Compiles methods when called for the first time.

 

 

14. What is the difference between Early Binding and Late Binding in .NET?

  • Early Binding:

    • Happens at compile time.
    • Compiler knows the method signatures and types in advance.
    • Safer and faster.
  • Late Binding:

    • Happens at runtime.
    • Uses reflection to dynamically invoke methods and access types.
    • Flexible but slower and prone to errors.

Example:

 // Early binding
SampleClass obj = new SampleClass();
obj.PrintMessage();

// Late binding using reflection
Type type = Type.GetType("SampleClass");
object instance = Activator.CreateInstance(type);
MethodInfo method = type.GetMethod("PrintMessage");
method.Invoke(instance, null);

 

15. What is Garbage Collection (GC) in .NET?

  • Garbage Collection is the process in the .NET Framework that automatically frees memory by reclaiming objects that are no longer in use.
  • GC improves memory management by cleaning up unreferenced objects.

Generations in Garbage Collection:

  1. Generation 0: Short-lived objects.
  2. Generation 1: Medium-lived objects.
  3. Generation 2: Long-lived objects.

Example:

 class Program
{
    static void Main()
    {
        // Force garbage collection
        GC.Collect();
        GC.WaitForPendingFinalizers();
    }
}

 

16. What is the difference between Dispose() and Finalize()?

  • Dispose():
    • Part of the IDisposable interface.
    • Must be called explicitly to release unmanaged resources.
  • Finalize():
    • Called by the Garbage Collector before an object is destroyed.
    • Cannot be called explicitly; handled by the system.

Example:

 class MyClass : IDisposable
{
    public void Dispose()
    {
        // Clean up unmanaged resources
    }
    
    ~MyClass()
    {
        // Finalizer (destructor) called by GC
    }
}

 

17. What is Reflection in .NET?

  • Reflection allows programs to inspect and interact with object metadata at runtime.
  • It can be used to dynamically create instances, invoke methods, and access fields and properties.

Example:

 Type type = typeof(SampleClass);
object instance = Activator.CreateInstance(type);
MethodInfo method = type.GetMethod("PrintMessage");
method.Invoke(instance, null);

 

18. What is ADO.NET?

  • ADO.NET is a data access technology used to interact with databases (SQL, Oracle, etc.) in the .NET Framework.
  • It provides data connectivity between .NET applications and data sources, allowing you to execute SQL queries, stored procedures, and manage transactions.

Components of ADO.NET:

  • Connection: Establishes a connection to the database.
  • Command: Executes SQL statements.
  • DataReader: Reads data from a data source in a forward-only manner.
  • DataAdapter: Fills DataSet/DataTable with data.
  • DataSet/DataTable: In-memory representation of data.

Example:

 using (SqlConnection connection = new SqlConnection("connectionString"))
{
    SqlCommand command = new SqlCommand("SELECT * FROM Students", connection);
    connection.Open();
    
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        Console.WriteLine(reader["Name"]);
    }
}


19. What is the difference between DataReader and DataSet in ADO.NET?

  • DataReader:
    • Provides forward-only, read-only access to data from a database.
    • Faster and more memory-efficient.
  • DataSet:
    • In-memory representation of data that can be manipulated without being connected to the database.
    • Slower, but supports multiple tables and relationships.

 

 

20. What is ASP.NET?

  • ASP.NET is a web application framework developed by Microsoft for building dynamic web pages, websites, and web services.
  • It provides tools and libraries for building web applications with features like state management, server controls, and web forms.

Types of ASP.NET Applications:

  • Web Forms: Event-driven development model with server-side controls.
  • MVC (Model-View-Controller): A design pattern separating data, UI, and logic.
  • Web API: Used for building RESTful web services.
  • Blazor: Allows building interactive web UIs using C# instead of JavaScript.

Example (Web Forms):

 protected void Button_Click(object sender, EventArgs e)
{
    Label.Text = "Hello, ASP.NET!";
}

 

21. What are HTTP Handlers and HTTP Modules in ASP.NET?

  • HTTP Handlers:

    • Low-level components that process incoming HTTP requests directly.
    • Typically used to handle requests for specific file types (e.g., .aspx, .ashx).
  • HTTP Modules:

    • Intercepts and modifies requests/responses at various stages in the pipeline.
    • Used for authentication, logging, or custom headers.

Example (Handler):

 public class MyHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Handled by MyHandler.");
    }
    
    public bool IsReusable => false;
}

 

22. What is the difference between Session and ViewState in ASP.NET?

  • Session:
    • Stores user-specific data on the server.
    • Persists across multiple pages and requests within a session.
    • Consumes more server resources (memory).
  • ViewState:
    • Stores data in a hidden field on the client (browser) side.
    • Retains data only for a single page during postbacks.
    • Increases page size but doesn’t use server memory.

Example of ViewState:

 // Storing value in ViewState
ViewState["UserName"] = "John";

// Retrieving value from ViewState
string userName = ViewState["UserName"].ToString();

 

23. What is ASP.NET MVC?

  • ASP.NET MVC is a web development framework that follows the Model-View-Controller design pattern.
    • Model: Represents the application data and business logic.
    • View: Displays the data and the user interface.
    • Controller: Handles user input, updates the model, and selects a view to render.

Advantages:

  • Separation of concerns.
  • Easier unit testing.
  • Greater control over HTML, CSS, and JavaScript.

Example:

 public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

 

24. What are Action Filters in ASP.NET MVC?

  • Action Filters allow you to execute code before or after an action method is executed.
  • Common use cases include logging, authorization, and caching.

Types of Action Filters:

  • Authorization Filters (e.g., Authorize).
  • Action Filters (e.g., OnActionExecuting, OnActionExecuted).
  • Result Filters (e.g., OnResultExecuting, OnResultExecuted).
  • Exception Filters (e.g., HandleError).

Example:

 public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // Log before action executes
    }
}

 

25. What is Entity Framework (EF)?

  • Entity Framework is an Object-Relational Mapping (ORM) framework for .NET that allows developers to work with databases using .NET objects (classes) instead of writing SQL queries.
  • Advantages:
    • Automatic generation of database schema.
    • Enables LINQ to query the database.
    • Database migration support for schema changes.

Example:

 // Defining a model
public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
}

// Using Entity Framework to interact with the database
using (var context = new SchoolContext())
{
    var students = context.Students.ToList();
}

26. What is the difference between LINQ to SQL and Entity Framework?

  • LINQ to SQL:
    • Designed for direct database access with SQL Server.
    • Supports a one-to-one mapping between database tables and .NET classes.
    • Simpler but less feature-rich than Entity Framework.
  • Entity Framework (EF):
    • Provides more features such as inheritance, complex types, and multi-table mapping.
    • Works with multiple database providers (SQL Server, MySQL, Oracle).
    • Supports Code First, Database First, and Model First approaches.

 

 

27. What is Web API in ASP.NET?

  • ASP.NET Web API is a framework for building HTTP-based services that can be consumed by a wide variety of clients (e.g., browsers, mobile devices).
  • Web API is primarily used to create RESTful services, where HTTP verbs (GET, POST, PUT, DELETE) map to CRUD operations.

 public class ProductsController : ApiController
{
    public IEnumerable<Product> GetAllProducts()
    {
        return productList;
    }
}

 

28. What is Dependency Injection (DI) in ASP.NET?

  • Dependency Injection is a design pattern that allows injecting objects into a class, rather than creating objects inside the class.
  • It decouples the creation of objects from the business logic, making the code more modular and testable.

Example (using ASP.NET Core DI):

 public class HomeController : Controller
{
    private readonly IProductService _productService;
    
    public HomeController(IProductService productService)
    {
        _productService = productService;
    }
    
    public IActionResult Index()
    {
        var products = _productService.GetProducts();
        return View(products);
    }
}

 

29. What are REST and SOAP?

  • REST (Representational State Transfer):

    • Uses HTTP methods (GET, POST, PUT, DELETE).
    • Stateless communication.
    • JSON or XML as data format.
    • Simpler and more scalable for web APIs.
  • SOAP (Simple Object Access Protocol):

    • Uses XML for request and response messages.
    • Requires more overhead due to its strict structure and protocols.
    • Supports security features like WS-Security.

 

 

30. What is OAuth in ASP.NET?

  • OAuth is an open standard for token-based authentication, used to grant third-party applications limited access to user resources without exposing credentials.
  • OAuth is commonly used in social logins (e.g., login with Google or Facebook).


31. What is SignalR in ASP.NET?

  • SignalR is a library that allows real-time web functionality in ASP.NET applications.
  • It enables the server to send updates to clients instantly via WebSockets, long-polling, or Server-Sent Events.

Use cases:

  • Chat applications.
  • Real-time notifications.
  • Live data feeds.

Example:

 public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

 

32. What is NuGet in .NET?

  • NuGet is a package manager for .NET, allowing developers to share and consume reusable code libraries.
  • It simplifies the process of including third-party libraries into your project.

Example:

 Install-Package Newtonsoft.Json

 

33. What are Generics in C#?

  • Generics allow defining classes, interfaces, and methods with placeholders for data types.
  • They promote code reusability and type safety by allowing you to create type-agnostic data structures.

Example:

 public class GenericClass<T>
{
    public T Data { get; set; }
}

 

34. What is a delegate in C#?

  • Delegates are type-safe function pointers that allow methods to be passed as parameters.
  • Useful in implementing callback functions, events, and asynchronous programming.

Example:

 public delegate void DisplayMessage(string message);

public void ShowMessage(string message)
{
    Console.WriteLine(message);
}

DisplayMessage display = new DisplayMessage(ShowMessage);
display("Hello, World!");

 

35. What are events in C#?

  • Events provide a mechanism for a class to notify other classes or objects when something of interest occurs.
  • Events are built on top of delegates and are typically used in UI programming and handling user interactions.

Example:

 public event EventHandler ButtonClicked;

 

36. What are Extension Methods in C#?

  • Extension Methods allow you to add new methods to existing types without modifying their source code or creating a derived type.
  • Extension methods are static methods, but they are called as if they were instance methods on the extended type.

Syntax:

 public static class StringExtensions
{
    public static int WordCount(this string str)
    {
        return str.Split(' ').Length;
    }
}

// Usage
string sentence = "Hello World";
int count = sentence.WordCount();  // Output: 2

Key Points:

  • Defined in static classes.
  • The first parameter specifies the type being extended, and the keyword this is used before the type.

 

37. What is the difference between finalize and dispose methods?

  • Finalize:

    • Called by the garbage collector before an object is destroyed.
    • Used to release unmanaged resources.
    • Cannot be called explicitly in code.
    • Defined using a destructor in C#.
  • Dispose:

    • Explicitly called by the developer to release unmanaged resources.
    • Part of the IDisposable interface.
    • Should be used when working with resources like file handles or database connections.

Example using Dispose:

 public class ResourceHolder : IDisposable
{
    private bool disposed = false;
    
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    
    protected virtual void Dispose(bool disposing)
    {
        if (!disposed)
        {
            if (disposing)
            {
                // Free managed resources
            }
            // Free unmanaged resources
            disposed = true;
        }
    }
    
    ~ResourceHolder()
    {
        Dispose(false);
    }
}

 

38. What is the using statement in C#?

  • The using statement is used to automatically manage the disposal of unmanaged resources.
  • It ensures that Dispose() is called on objects that implement IDisposable, even if an exception occurs.

Example:

 using (var reader = new StreamReader("file.txt"))
{
    string content = reader.ReadToEnd();
}
// `Dispose()` is automatically called on `StreamReader`.

 

39. What is a sealed class in C#?

  • A sealed class cannot be inherited by other classes. It restricts the class hierarchy by preventing inheritance.
  • Sealing a class can be useful for security, performance, or if you want to ensure the class’s implementation stays unchanged.

Example:

 public sealed class SealedClass
{
    public void Display()
    {
        Console.WriteLine("This is a sealed class.");
    }
}

 

40. What is the lock statement in C#?

  • The lock statement is used to ensure that a block of code is executed by only one thread at a time. It provides thread-safety by preventing race conditions.
  • Typically used when working with shared resources in multi-threaded applications.

Example:

 private static object _lock = new object();

public void CriticalSection()
{
    lock (_lock)
    {
        // Code that must be synchronized
    }
}

 

41. What are Indexers in C#?

  • Indexers allow objects to be indexed like arrays. They enable a class to be accessed using square brackets [], similar to array elements.

Example:

 public class SampleCollection
{
    private string[] elements = new string[100];
    
    public string this[int index]
    {
        get { return elements[index]; }
        set { elements[index] = value; }
    }
}

// Usage
SampleCollection collection = new SampleCollection();
collection[0] = "First Element";
Console.WriteLine(collection[0]); // Output: First Element

 

42. What is the difference between Array and ArrayList in C#?

  • Array:

    • Fixed size, strongly-typed (can only hold one data type).
    • Faster performance due to strong typing.
  • ArrayList:

    • Dynamic size, but not strongly-typed (can hold different data types).
    • Uses more memory and is slower compared to arrays due to boxing and unboxing of value types.

Example:

 // Array
int[] numbers = new int[5];

// ArrayList
ArrayList list = new ArrayList();
list.Add(1);
list.Add("String"); // Mixed types

 

43. What is a Multicast Delegate in C#?

  • A Multicast Delegate can hold references to multiple methods. When invoked, it calls all the methods in its invocation list.

Example:

 public delegate void Notify();

public class DelegateExample
{
    public static void Method1() { Console.WriteLine("Method1"); }
    public static void Method2() { Console.WriteLine("Method2"); }

    public static void Main()
    {
        Notify notifyDelegate = Method1;
        notifyDelegate += Method2; // Multicast
        notifyDelegate.Invoke();
    }
}

// Output:
// Method1
// Method2

 

44. What is the difference between IEnumerable and IQueryable in C#?

  • IEnumerable:

    • Suitable for in-memory data collection.
    • Queries are executed in memory.
    • Supports LINQ to Objects and LINQ to XML.
  • IQueryable:

    • Suitable for out-of-memory data (e.g., databases).
    • Queries are executed on the data source (e.g., SQL database).
    • Supports deferred execution and LINQ to SQL.

Example:

 // Using IQueryable for deferred execution
IQueryable<Product> query = dbContext.Products.Where(p => p.Price > 50);

// Using IEnumerable
IEnumerable<Product> products = query.ToList();

 

45. What are anonymous methods in C#?

  • Anonymous methods allow you to define inline, unnamed methods using the delegate keyword.
  • They are used for shorter, simpler delegate expressions, and can capture variables from their surrounding scope.

Example:

 Func<int, int> square = delegate (int x)
{
    return x * x;
};

int result = square(5);  // Output: 25

 

46. What are Lambda Expressions in C#?

  • Lambda expressions are concise ways to write anonymous methods. They are used extensively in LINQ queries.

Example:

 Func<int, int> square = x => x * x;

int result = square(5);  // Output: 25

 

47. What is the role of yield in C#?

  • yield allows methods to return elements of a collection one at a time, without storing them all in memory. It's useful for creating custom iterator methods.

Example:

 public IEnumerable<int> GetNumbers()
{
    for (int i = 1; i <= 5; i++)
    {
        yield return i;
    }
}

// Usage
foreach (int number in GetNumbers())
{
    Console.WriteLine(number);
}

 

48. What is Reflection in C#?

  • Reflection allows inspecting and interacting with the metadata of types, methods, and properties at runtime.

Use cases:

  • Creating objects dynamically.
  • Invoking methods at runtime.
  • Accessing private fields and methods.

Example:

 Type type = typeof(MyClass);
MethodInfo method = type.GetMethod("MyMethod");
method.Invoke(Activator.CreateInstance(type), null);

 

49. What is the purpose of is and as operators in C#?

  • is: Checks if an object is of a specific type.
  • as: Attempts to cast an object to a specific type, returning null if the cast fails.

Example:

 object obj = "Hello";

if (obj is string)
{
    string str = obj as string;
    Console.WriteLine(str);
}

 

50. What is the out keyword in C#?

  • The out keyword allows a method to return multiple values by passing arguments by reference.
  • Parameters marked with out must be assigned a value before the method returns.

Example:

 public void GetValues(out int a, out int b)
{
    a = 10;
    b = 20;
}

// Usage
int x, y;
GetValues(out x, out y);
Console.WriteLine($"x = {x}, y = {y}");

 

51. What is a Strong Name in .NET?

  • A Strong Name uniquely identifies an assembly using its name, version, culture, and public key token.
  • Strongly named assemblies are stored in the GAC and help in avoiding conflicts between versions.

Example:

 sn -k MyKey.snk

 

52. What is the difference between const and readonly in C#?

  • const:
    • Compile-time constant.
    • Value cannot change.
    • Must be assigned at declaration.
  • readonly:
    • Runtime constant.
    • Can be assigned at runtime in the constructor.

Example:

 const int maxItems = 100;
readonly int maxLimit;

 

53. What is the purpose of sealed methods in C#?

  • A sealed method is a method that prevents overriding in derived classes.
  • Only applies to methods in base classes marked virtual or override.

Example:

 public override sealed void Method()
{
    // This method cannot be overridden further.
}

 

54. What is the difference between throw and throw ex in exception handling?

  • throw: Re-throws the original exception while preserving the stack trace.
  • throw ex: Resets the stack trace, making it harder to trace the original error.

Example:

 try
{
    // Some code
}
catch(Exception ex)
{
    throw; // Preserves original exception
}

 

55. What is the difference between Task and Thread in C#?

  • Task: Higher-level abstraction for managing asynchronous operations. It supports continuations and better integrates with async/await.
  • Thread: Lower-level, represents a unit of execution in the system.

 

 

56. What is Lazy<T> in C#?

  • Lazy<T> provides a way to delay the initialization of an object until it is needed (lazy loading).

Example:

 Lazy<MyClass> lazyObj = new Lazy<MyClass>(() => new MyClass());

 

57. What is the difference between Abstract Class and Interface in C#?

  • Abstract Class:
    • Can have method implementations.
    • Supports access modifiers.
    • Can contain constructors.
  • Interface:
    • Only method declarations (before C# 8.0).
    • Cannot have access modifiers.
    • No constructors.

 

58. What is the difference between synchronous and asynchronous programming?

  • Synchronous:
    • Blocking, one operation must complete before another can start.
  • Asynchronous:
    • Non-blocking, allows operations to run in parallel or independently.

Example:

 await Task.Delay(1000); // Asynchronous call

 

59. What is the Func delegate in C#?

  • Func is a built-in delegate type that returns a value. It can take up to 16 input parameters.

Example:

 Func<int, int, int> add = (x, y) => x + y;

 

60. What is the difference between String and StringBuilder?

  • String: Immutable, every change creates a new string object.
  • StringBuilder: Mutable, optimized for multiple manipulations on strings.

 

 

61. What is the Singleton Design Pattern?

  • The Singleton Pattern ensures that a class has only one instance and provides a global point of access to it.

Example:

 public class Singleton
{
    private static Singleton _instance;
    private Singleton() { }

    public static Singleton Instance => _instance ??= new Singleton();
}

 

62. What is Memory Leak in .NET and how to prevent it?

  • A Memory Leak occurs when objects are no longer used but not freed, causing memory exhaustion.
  • To prevent it:
    • Dispose unmanaged resources properly.
    • Use weak references where applicable.
    • Implement the IDisposable interface.

 

63. What is the difference between Task.Run() and TaskFactory.StartNew()?

  • Task.Run(): Suitable for CPU-bound operations and preferred for new code.
  • TaskFactory.StartNew(): Offers more configuration options and is more flexible.

 

64. What is the volatile keyword in C#?

  • The volatile keyword ensures that a variable's value is always read from memory, preventing optimizations that might cache its value in CPU registers.

 

65. What is the difference between Task.Wait() and Task.Result?

  • Task.Wait(): Blocks the calling thread until the task completes.
  • Task.Result: Blocks the thread and retrieves the task’s result.

 

66. What is the difference between a Shallow Copy and a Deep Copy?

  • Shallow Copy: Copies the reference types as references (pointers).
  • Deep Copy: Copies the actual objects, creating new instances.

 

67. What is the difference between a List<T> and an Array in C#?

  • List<T>: Dynamic size, resizable, part of System.Collections.Generic.
  • Array: Fixed size, cannot resize after creation.

 

68. What are Nullable Types in C#?

  • Nullable types allow value types to have null values, using the ? syntax.

Example:

 int? num = null;

 

69. What is the difference between First() and FirstOrDefault() in LINQ?

  • First(): Throws an exception if no element is found.
  • FirstOrDefault(): Returns a default value (like null or 0) if no element is found.

 

70. What is yield in C#?

  • yield is used to create an iterator block, returning each element of a collection one at a time without creating the entire collection in memory.

 

71. What are the differences between Task and ThreadPool?

  • Task: Used for managing parallel code.
  • ThreadPool: Manages a pool of worker threads to perform tasks.

 

72. What is the lock keyword in C#?

  • lock is used to ensure that a block of code runs exclusively in a multi-threaded environment, preventing race conditions.

 

73. What is IEnumerable<T> in C#?

  • IEnumerable<T> represents a forward-only, read-only collection of a sequence of elements.

 

 

74. What is Covariance and Contravariance in C#?

  • Covariance allows a method to return a more derived type than the specified type.
  • Contravariance allows a method to accept arguments of a more general type than the specified type.

 

75. What is a Mutex in .NET?

  • A Mutex is used for synchronizing access to a resource across multiple threads and processes.

 

76. What are Tuples in C#?

  • A Tuple is a data structure that can hold multiple values of different types.

Example:

 var tuple = Tuple.Create(1, "Hello", true);

 

77. What is the difference between ToString() and Convert.ToString()?

  • ToString(): Can throw an exception if the object is null.
  • Convert.ToString(): Returns an empty string if the object is null.

 

78. What is the ThreadLocal<T> class in C#?

  • ThreadLocal<T> provides thread-local storage, meaning each thread has its own separate instance of a variable.

 

79. What is the ICloneable interface in C#?

  • The ICloneable interface provides a mechanism for creating a copy of an object.

 

80. What is the WeakReference class in C#?

  • A WeakReference allows an object to be garbage collected while still allowing a reference to the object.

 

 

 


Wednesday, April 7, 2021

What is the difference between primary key and unique key in SQL Server?

How to answer DBMS interview question about the difference between primary key and unique key

difference between primary key and unique key

This is very commonly asked interview question from SQL Server or database. Following is the answer of this question:

1. By default, Primary key creates clustered index in the table but unique key creates non-clustered index.

2. Primary key column does not accept any null values, where as a unique key column accept only one null value.

3. A table can have only one primary key. On the other hand a table can have more than one unique key.

4. Duplicate values are not allowed in primary key where as duplicate value will be accepted if one or more key parts are null

5. The purpose of implementing primary key is to enforce integrity between entities of database, on the other hand the purpose of unique key is to enforce unique data within the table.



Tuesday, September 24, 2019

Tell Me About Yourself - How to Answer Best way






Tell Me About Yourself / introduce yourself / Tell me something about yourself / tell me about yourself interview answers - Best Tricks To Answer the very common interview question.

Introduction:

“Tell me about yourself”.

The first Question in any job interview. This could be the most difficult question and disqualify you if you are not prepared for it.


Alternative forms of the question:


The interviewer can also ask you same questions in different ways like:
  • Tell me something about yourself.
  • Can you tell me a little about yourself?
  • Briefly introduce yourself.
  • Please tell us about your background.
  • How would you describe yourself?

Asked in every interviews:

In every job interview it is universal that you will be asked the question:

“Tell me about yourself”.

Regardless of your industry, experience level or job type your interviewer will come up with the question, most frequently the first question of the interview. Since it’s often the first question to be asked in an interview, it’s your big chance to make a first impression.

This question is an opportunity for you to set the tone of the job interview and emphasize the points that you most want this potential employer to know about you.


Interviewer's Expectations and Perspectives:

So what your interviewer’s want to know by asking this question?
  • His ultimate goal for this interview is to find out enough about you to decide if you’re a good fit for the job opening. In most cases, he wants to like you.
  • Can you communicate comfortably?
  • How potential candidate you are for the job?
  • How your experience is pertinent to the job description you're interviewing?

Some Common Mistakes:

Now, let us talk about some common mistakes not to make while answering the question:
  1. Don’t recitate your resume: Many candidates; respond by launching into a recitation of their resume; from the very beginning. This can turn into a very long monologue; that is probably the least relevant experience.
     
  2. Avoid talking about personal details or life story: Avoid mentioning personal information such as marital status, children, political or religious affiliations, etc. These can be highly sensitive topics that might work against you as a candidate. No one is interest on it.
     
  3. Don’t be too modest: Many candidates; make the mistake of being too modest. They reply with a humble or vague introduction; that fails to clearly communicate their strongest qualifications.

How to prepare yourself:

Now let us see some tips to prepare yourself:
  • Your answer should be focused on your Top Qualities, Skills, Experiences, Achievements, Distinct Extra curricular activities.
  • Short (usually than 1 minute, prepare for 2 minutes).
  • Write down your answer and print it.
  • Practice the answer again and again.

How to Answer:

Your answer should have three components:
  1. Who You Are: Concisely summarizes diverse background. Your first sentence should be an introduction to who you are professionally, an overview statement that shows off your strengths and gives a little sense of your personality too.
  2. Expertise Highlights: The emphasis here is on experience, enthusiasm, and proof of performance. Don’t assume that the interviewer has closely read your resume and knows your qualifications. Use your elevator pitch to briefly highlight 2-4 points that you think make you stand out.
  3. Why You’re Here: Concise and positive. End by telling them you want the position and why.

Sample Good Answers:

An experienced HR Manager can answer, like:-

Well, Thank you for giving me the opportunity to introduce myself.

I’m an innovative HR manager with 10 years of experience leading and managing all aspects of the Human Resource functions, — from recruiting to training to benefits — for large enterprises that have multi-cultural and diversified environment.

I have spent the last six years developing my skills as a customer service manager for Telenor Inc. where I have won several performance awards and been promoted twice. I love managing teams and solving customer problems.

Although I love my current role, I feel I’m now ready for a more challenging assignment and this position really excites me
.”


An experienced software developer answers may be:

Thank you for giving me the opportunity.

Well, I have more than five years of experience as a technical project manager at CMMI Level 5 certified Software Development companies.

In my current position I led the development of machine learning enabled IoT based Predictive Healthcare Information Management System and implemented in Savar, Bangladesh to keep track of health record of around 5000 villagers. This project won multiple awards along with national ICT award 2020.

I’m a person who thrives in a fast-paced environment and like to work for Health development. So, right now, I’m looking for an opportunity to apply my technical experience and my creative problem solving skills at an innovative software company that implement innovation in Health.


Practicing your answer over and over will be the key to success.

Best of luck.

Monday, July 22, 2019

C# Interview Questions with Answers part 2



1. To create a custom exception, which class is required to be inherited?
A) SystemException
B) System.Exception
C) System.Attribute
D) Enumerable

Ans. B

2. How do you throw an exception so the stack trace preserves the information?
A) throw;
B) throw new Exception();
C) throw ex;
D) return new Exception();


Ans. A

3. You need to reference a method which returns a Boolean value and accepts two int parameters. Which of the following delegates would you use?
A) Func<int, int, bool> func;
B) Action<int, int, bool> act;
C) Func<bool, int, int> func;
D) Action<bool, int, int> act;

Ans. A

4. Which of the following keywords is useful for ignoring the remaining code execution and quickly jumping to the next iteration of the loop?
A) break;
B) yield;
C) jump;
D) continue;

Ans. D

5. Which of the following loops is faster?
A) for
B) do
C) Parallel.for
D) foreach

Ans. C

6. await keyword can only be written with a method whose method signature has:
A) static keyword
B) async keyword
C) lock keyword
D) sealed keyword

 Ans. B

7. Which keyword is used to prevent a class from inheriting?
A) sealed
B) lock
C) const
D) static

Ans. A

8. When handling an exception, which block is useful to release resources?
A) try
B) catch
C) finally
D) lock

Ans. A

9. Which of following methods is accurate for holding the execution of a running task for a specific time?
A) Thread.Sleep()
B) Task.Delay()
C) Task.Wait()
D) Task.WaitAll()

Ans. B


10. Which of the following methods is useful for holding the execution of a main thread until all background tasks are executing?
A) Thread.Sleep()
B) Task.WaitAll()
C) Task.Wait()
D) Thread.Join()

Ans. B

11. How would you chain the execution of a task so that every next task runs when the previous task finishes its execution? Which method you would use?
A) task.ContinueWith()
B) Task.Wait()
C) Task.Run()
D) Thread.Join()

Ans. A

12. In a switch statement, which keyword would you use to write a code when no case value satisfies?
A) else
B) default
C) return
D) yield

Ans. B

13. Foreach loop can only run on:
A) anything
B) collection
C) const values
D) static values

Ans. B

14. Which keyword is useful for returning a single value from a method to the calling code?
A) yield
B) return
C) break
D) continue

Ans. B

15. Which of the following collections is a thread-safe?
A) Dictionary<K,V>
B) Stack<T>
C) ConcurrentDictionary<K,V>
D) Queue

Ans. C

16. When running a long-running asynchronous operation that returns a value, which keyword is used to wait and get the result?
A) await
B) yield
C) return
D) async

Ans. A

17. Which of the following is the right syntax for using an asynchronous lambda expression?
 A) Task task = async () => { ... };
B) Task<Task> task = async () => { ... };
C) Func<Task> task = async () => { ... };
D) Action<Task> task = async (t) => { ... };

Ans. C

18. Which property or method of task can be used as an alternative of the await keyword?
A) Result
B) Wait()
C) WaitAll()
D) Delay()

Ans. A

19. Suppose you’re creating an application that needs a delegate that can hold a reference of a method that can return bool and accept an integer parameter. How would you define that delegate?
A) delegate bool myDelegate(int i, int j);
B) delegate bool (int i, int j);
C) delegate myDelegate(int i, int j);
D) delegate bool myDelegate(int i);

Ans. A



Tuesday, July 9, 2019

C# Interview Questions with Answers

Common C# and .net Interview Questions

C# Interview Questions


1. Which of the following methods help us to convert string type data into integers? Select any two. 
A) Convert.toInt32();
B) Convert.Int32();
C) int.parse();
D) parse.int()


2. Suppose you’re implementing a method name “Show” that will be able to take an unlimited number of int arguments. How are you going to define its method signature? 
A) void Show(int[] arg)
B) void Show(params int[] arg)
C) void Show(int a)
D) void Show(ref int a


3. You need to use null-coalescing operator to make sure “name” variable must have a value not null. Select the right way to use null-coalescing operator in C#.

A) string name = n ?? “No Name”;
B) string name = “No Name” ?? null;
C) string name = “No Name” ? null;
D) string name = null ? “No Name”;


4. Which jump statement will you use to start the next iteration while skipping the current iteration of loop?
A) Break
B) Continue
C) Goto
D) Return


5. Which operator is used to compare types? 
A) as
B) is
C) this
D) ?

 

6. Which operator is used to get instance data inside type definition? 

A) as
B) is
C) this
D) ?


7. Which type cannot be instantiated? 

A) enum type
B) static type
C) class type
D) System.Object type


8. The following code is boxed into object 

o. double d = 34.5; 
object o = d;

You’re asked to cast “object o” into “int ”.
A) int i = (int)o;
B) int i = (int)(double)o;
C) int i = (int)(float)(double)o;
D) int i = (float)o;


9. Suppose you’re developing an application which stores a user’s browser history. Which collection class will help to retrieve information of the last visited page?
A) ArrayList
B) Queue
C) Stack
D) HashTable


10. Suppose you’re writing a class that needs a delegate who can refer a method(s) of two input string parameters and return an integer value. Choose the right delegate from the following options.
A) Action<int, string, string>
B) Func<string, string, int>
C) Predicate<int, string, string>
D) EventArgs<int, string, string>



11. You are implementing a method that creates an instance of a class named Person. The Person class contains a public event named Die. The following code segment defines the Die event:

Public event EventHandler Die;

You need to create an event handler for the Die event by using a lambda expression.

A) Person person = new Person();
     person.Die = (s, e) => { /*Method Body*/};
B) Person person = new Person();
     person.Die -= (s, e) => { /*Method Body*/};
C) Person person = new Person();
     person.Die += (s, e) => { /*Method Body*/};
D) Person person = new Person();
      person.Die += () => { /*Method Body*/}



12. Suppose you’re writing a method that has one input string parameter and it returns True if the value of the string input parameter is in upper case. Which of the following delegate(s) will you use to refer this method?
A) Action<bool, string>
B) Func<bool, string>
C) Predicate<string>
D) EventHandler


13. In order to perform a query, a data source must be implemented by: 
A) Enumerable or Queryable
B) Enumerable and Queryable
C) IEnumerable or IQueryable
D) IEnumerable and IQueryable


14. An application includes an object that performs a long-running process. You need to ensure that the garbage collector does not release the object's resources until the process completes.Which garbage collector method should you use?
A) WaitForFullGCComplete()
B) WaitForFullGCApproach()
C) KeepAlive() 
D) WaitForPendingFinalizers()



15. Suppose you're writing an application that uses unmanaged resource. You've implemented an IDisposable interface to manage the memory of unmanaged resource. When implementing Dispose method, which method should you use to prevent garbage collector from calling the object's finalizer? 
A) GC.SuppressFinalize(this)
B) GC.SuppressFinalize(true)
C) GC.WaitForFullGCApproach()
D) GC.WaitForPendingFinalizers()


16. You're instantiating an unmanaged resource; which of the following statements would you use to instantiate an unmanaged resource so that its Dispose method shall always call automatically? 
A) if-else{}
B) try/catch
C) using()
D) switch()


17. Which of the following methods is used to run a LINQ query in parallel? 
A) AsParallel();
B) RunParallel();
C) ToParallel();
D) Parallel();


18. How do you throw an exception to preserve stack-trace information? 
A) throw;
B) throw new Exception();
C) throw e;
D) return new Exception();


19. Suppose you’re developing an application that require that need to define its own custom exceptions. Which of the following class you’d inherit to create a custom exception? 
A) Attribute
B) Exception
C) IEnumerable
D) IEnumerator


20. You are developing an application that retrieves Person type data from the Internet using JSON. You have written the following function for receiving the data so far:

serializer.Deserialize<Person>(json);

Which code segment should you use before this function?
A) DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
B) DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
C) JavaScriptSerializer serializer = new JavaScriptSerializer();
D) NetDataContractSerializer serializer = new NetDataContractSerializer();


21. You need to store a large amount of data in a file. Which serializer would you consider better?

A) XmlSerializer
B) DataContractSerializer
C) DataContractJsonSerializer
D) BinaryFormatter
E) JavaScriptSerializer


22. You want to serialize data in Binary format but some members don’t need to be serialized. Which attribute should you use?
A) XmlIgnore
B) NotSerialized
C) NonSerialized
D) Ignore 


23. You want to retrieve data from Microsoft Access 2013, which should be read-only. Which class you should use? 
A) SqlDataAdapter
B) DbDataAdapter
C) OleDbDataReader
D) SqlDataReader


24. Suppose you created the ASMX Web Service named SampleService. Which class you would use to create the proxy for this service? 

A) SampleServiceSoapClient
B) SampleService
C) SampleServiceClient
D) SampleServiceSoapProxy
 

25. The application needs to encrypt highly sensitive data. Which algorithm should you use? 
A) DES
B) Aes
C) TripleDES
D) RC2



26. You are developing an application which transmits a large amount of data. You need to ensure the data integrity. Which algorithm should you use? 
A) RSA
B) HMACSHA256
C) Aes
D) RNGCryptoServiceProvider


27. Salt Hashing is done by: 
A) Merging data with random value and perform cryptography.
B) Merging data with random value and perform cryptanalysis.
C) Merging data with random value and perform encryption.
D) Merging data with random value and perform hashing.



28. Which of the following methods is used for getting the information of the current assembly? 
A) Assembly. GetExecutingAssembly();
B) Assembly.GetExecutedAssembly();
C) Assembly.GetCurrentAssembly();
D) Assembly.ExecutingAssembly();



29. Which class should you preferably use for tracing in Release Mode? 
A) Debug
B) Trace
C) TraceSource
D) All of the above


30. Which method is the easiest way of finding the problem if you have no idea what it is? 
A) Using Profiler
B) Profiling by Hand
C) Using Performance Counter
D) Debugging


 Answers:
1: A, C
2. B
3. A
4. B
5. B
6. C
7. B
8. C
9. C
10. B
11. C
12. C
13. C
14. C
15. A
16. C
17. A
18. A
19. B
20. C
21. D
22. C
23. C
24. A
25. B
26. B
27. D
28. A
29. C
30. A