Advanced C# .Net Questions and Answers

Interview Questions Question – Define assembly.
Answer – 
An assembly is the primary unit of a .NET application. It includes an assembly manifest that describes the assembly.

Question – What is Constructor?
 
Answer – 
It is the first method that are called on instantiation of a type. It provides way to set default values for data before the object is available for use. Performs other necessary functions before the object is available for use.

Question – What is Destructor? 
Answer – It is called just before an object is destroyed. It can be used to run clean-up code. You can’t control when a destructor is called since object clean up by common language runtime.

Question – Define Abstract class in C#.NET.
Answer – Abstract class cannot be instantiated.
Same concept in C++ known as pure virtual method.
A class that must be inherited and have the methods over-ridden.
A class without any implementation.

Question – Explain serialization? 
Answer – 
Serialization is a process of converting an object into a stream of bytes. .Net has 2 serializers namely XMLSerializer and SOAP/BINARY Serializer. Serialization is maily used in the concept of .Net Remoting.

Question – C#.Net support multiple inheritance, comment.
Answer – No, but we can use interface instead.

Question – Can private virtual methods be overridden in C#.NET?
Answer – No, moreover, you cannot access private methods in inherited classes,
They have to be protected in the base class to allow any sort of access.

Question – Is is possible to force garbage collector to run?
Answer Yes, we can force garbage collector to run using System.GC.Collect().

Question – How do you inherit derived class from a base class in C#.NET?
Answer – 
By using colon and then the name of the base class.

Question – Name the Top .NET class that everything is derived from.
Answer – System.Object.

Question – Define protected class-level variable in C#.NET.
Answer – It can be inherited by the classes in the same namespace.

Question – Is it possible to inherit private class-level variables?
Answer – No.

Question – Is it possible to inherit multiple interfaces in C#.NET?
Answer – Yes.

Question – Define Protected internal.
Answer – It is available to derived classes and classes within the same Assembly.

Question – How to prevent your class from being inherited?
Answer – You can use keyword ‘sealed’ in the class definition to prevent class from being inherited.

Question – List down difference between overriding and overloading.
Answer – 
When overriding, you change the method behavior for a derived class.
Overloading simply involves having a method with the same name within the class.

Question – What does the keyword virtual mean in the method definition?
Answer – The method can be over-ridden.

Question – How to allow class to be inherited, but prevent the method from being over-ridden?
Answer – You can do so by declaring the class public and making the method sealed.

Question – When do we declare a class as abstract in C#.NET?
Answer – When at least one of the methods in the class is abstract.

Question – Define Interface class in C#.NET.
Answer – It is an abstract class with public abstract methods with no implimentation

Question – Difference between an interface and abstract class
Answer – In the interface all methods must be abstract;
In the abstract class some methods can be concrete.
In the interface no accessibility modifiers are allowed, which is possible in abstract classes.

Question – How can you overload a method?
Answer – Different parameter data types, different number of parameters, different order of parameters.

Question – Difference between System.String and System.StringBuilder classes.
Answer – System.String is immutable;
System.StringBuilder was designed with the purpose of having a mutable string where a variety of operations can be performed.

Question – Define Delegate.
Answer – A delegate object encapsulates a reference to a method.
In C++ they were referred to as function pointers.

Question – How is DLL Hell problem solved in .NET?
Answer – Assembly versioning helps to resolve not only the library it needs to run , but also the version of the assembly.

Question – Ways to deploy an assembly.
Answer – MSI installer, a CAB archive, and XCOPY command

Question – Define Satellite Assembly.
Answer – When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies.

Question – Namespaces to create a localized application.
Answer – System Globalization, System Resources.

Question – List out difference between the Debug class and Trace class.
Answer – Use debug class for debug builds, use Trace class for both debug and release builds.

Question – What are three test cases you should go through in unit testing?
Answer – Positive test cases (correct data, correct output), negative test cases (broken or missing data, proper handling), exception test cases (exceptions are thrown and caught properly).