ASP .NET Interview Question

There are many things that you can do ahead of time to prepare for the interviewing process, and move yourself a step above of the competition. Updating your resume and reviewing frequently asked interview questions can be very effective, and goes a long way in getting the most out of your interview.

Why is catch(Exception) almost always a bad idea?

Well, if at that point you know that an error has occurred, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions signifies some design flaws in the project.

 

What is the difference between Debug. Write and Trace. Write? When should each be used?

Answer1:
The Debug. Write call won't be compiled when the DEBUG symbol is not defined (when doing a release build). Trace. Write calls will be compiled. Debug. Write is for information you want only in debug builds, Trace. Write is for when you want it in release build as well. And in any case, you should use something like log4net because that is both faster and better

Answer2:
Debug. Write & Trace. write - both works in Debug mode, while in Release Mode,Trace.write only will work .Try changing the Active Config property of Solution in Property page nd find the difference. Debug.write is used while debugging a project and Trace.write is used in Released version of Applications.

What is the difference between a Debug and Release build? Is there a significant speed difference? Why or why not?

Debug build contain debug symbols and can be debugged while release build doesn't contain debug symbols, doesn't have [Conational(”DEBUG”)] methods calls compiled, can't be debugged (easily, that is), less checking, etc. There should be a speed difference, because of disabling debug methods, reducing code size etc but that is not a guarantee (at least not a significant one)

 

Contrast the use of an abstract base class against an interface?

Answer1:
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 ok in abstract classes

Answer2:
Whether to Choose VB.NET/C#.
Both the languages are using same classes and namespaces. Once it compile and generates MSIL, there is no meaning of which language it was written. If you are Java/C++ programmer better to choose C# for same coding style otherwise you can choose VB.net.

 

What is the difference between a.Equals(b) and a == b?

Answer1:
a=b is used for assigning the values (rather then comparison) and a==b is for comparison.

Answer2:
a == b is used to compare the references of two objects
a.Equals(b) is used to compare two objects

Answer3:
A equals b -> copies contents of b to a
a == b -> checks if a is equal to b

Answer4:
Equals method compares both type and value of the variable, while == compares value.
int a = 0;
bool b = 0

if(a.Equals(b))

Answer5:
a.Equals(b) checks whether the Type of a is equal to b or not! Put it in another way,
Dim a As Integer = 1
Dim b As Single = 1

a.Equals(b) returns false. The Equals method returns a boolean value.
a == b is a simple assignment statement.

Answer6:
a.equals(b) will check whether the “b” has same type as “a” has and also has the same data as “a” has.
a==b will do the same thing.
if you have done this in c++ under “operator overloading” than you guys must be aware of this sytaxts. they are doing the same thing there is only sytaxtical difference.
let me explain it in different manner.
a==b : means compare “b” with “a”. always left hand side expression evaluated first so here in this case “a” (considered an object) will call the overloaded operator “=” which defines “Equals(object)” method in it's class. thus, ultimately a.equals(b) goanna called.
so the answer is: both will perform the same task. they are different by syntaxt

Answer7:
Difference b/w a==b,a.Equals(b)
a.Equals(b):
The default implementation of Equals supports reference equality only, but derived classes can override this method to support value equality.

For reference types, equality is defined as object equality; that is, whether the references refer to the same object. For value types, equality is defined as bitwise equality
== :
For predefined value types, the equality operator (==) returns true if the values of its operands are equal, false otherwise. For reference types other than string, == returns true if its two operands refer to the same object. For the string type, == compares the values of the strings.

 

How would one do a deep copy in .NET?

Answer1:
System.Array.CopyTo() - Deep copies an Array

Answer2:
How would one do a deep copy in .NET?
The First Approach.
1.Create a new instance.
2.Copy the properties from source instance to newly created instance.
[Use reflection if you want to write a common method to achive this]

The Second Approach.
1. Serialize the object and deserialize the output.
: Use binary serialization if you want private variables to be copied.
: Use xml Serialization if you dont want private variable to be copied.

 

What is boxing?

Boxing is an implicit conversion of a value type to the type object
int i = 123; // A value type
Object box = i // Boxing
Unboxing is an explicit conversion from the type object to a value type
int i = 123; // A value type object box = i; // Boxing
int j = (int)box; // Unboxing

 

Is string a value type or a reference type?

Answer1:
String is Reference Type.
Value type - bool, byte, chat, decimal, double, enum , float, int, long, sbyte, short,strut, uint, ulong, ushort
Value types are stored in the Stack
Reference type - class, delegate, interface, object, string
Reference types are stored in the Heap

Answer2:
Yes String is reference type. C# gives two types of variable reference and value type. string and object are reference type.