1. What is C#?
C# is an object oriented, type safe
and managed language that is compiled by .Net framework to generate Microsoft
Intermediate Language.
2.
What are the types of comment in C# with examples?
Single line
Eg:
|
1
|
//This
is a Single line comment
|
ii. Multiple line (/* */)
Eg:
|
1
2
3
|
/*This is a multiple
line comment
We are in line 2
Last line of
comment*/
|
iii. XML Comments (///).
Eg:
|
1
2
3
|
///
<summary>
/// Set error
message for multilingual language.
///
</summary>
|
3.
Can multiple catch blocks be executed?
No, Multiple catch blocks can’t be
executed. Once the proper catch code executed, the control is transferred to
the finally block and then the code that follows the finally block gets
executed.
4.
What is the difference between public, static and void?
All these are access modifiers in
C#. Public declared variables or methods are accessible anywhere in the
application. Static declared variables or methods are globally accessible
without creating an instance of the class. The compiler stores the address of
the method as the entry point and uses this information to begin execution
before any objects are created. And Void is a type modifier that states that
the method or variable does not return any value.
5.
What is an object?
An object is an instance of a class
through which we access the methods of that class. “New” keyword is used to
create an object. A class that creates an object in memory will contain the
information about the methods, variables and behavior of that class.
6.
Define Constructors?
A constructor is a member function
in a class that has the same name as its class. The constructor is
automatically invoked whenever an object class is created. It constructs the
values of data members while initializing the class.
7.
What is Jagged Arrays?
The array which has elements of type
array is called jagged array. The elements can be of different dimensions and
sizes. We can also call jagged array as Array of arrays.
8.
What is the difference between ref & out parameters?
An argument passed as ref must be
initialized before passing to the method whereas out parameter needs not to be
initialized before passing to a method.
9.
What is the use of using statement in C#?
The using block is used to obtain a
resource and use it and then automatically dispose of when the execution of
block completed.
10. What is
serialization?
When we want to transport an object
through network then we have to convert the object into a stream of bytes. The
process of converting an object into a stream of bytes is called Serialization.
For an object to be serializable, it should inherit ISerialize Interface.
De-serialization is the reverse process of creating an object from a stream of bytes.
De-serialization is the reverse process of creating an object from a stream of bytes.
11. Can “this” be used
within a static method?
We can’t use ‘This’ in a static
method because we can only use static variables/methods in a static method.
12. What is difference between
constants and read-only?
Constant variables are declared and
initialized at compile time. The value can’t be changed after wards. Read-only
variables will be initialized only from the Static constructor of the class.
Read only is used only when we want to assign the value at run time.
13. What is an interface
class?
Interface is an abstract class which
has only public abstract methods and the methods only have the declaration and
not the definition. These abstract methods must be implemented in the inherited
classes.
14. What are value types
and reference types?
Value types are stored in the Stack
whereas reference types stored on heap.
Value types:
Value types:
|
1
|
int, enum ,
byte, decimal, double, float, long
|
Reference Types:
|
1
|
string ,
class, interface, object.
|
15. What are Custom
Control and User Control?
Custom Controls are controls
generated as compiled code (Dlls), those are easier to use and can be added to
toolbox. Developers can drag and drop controls to their web forms. Attributes
can be set at design time. We can easily add custom controls to Multiple
Applications (If Shared Dlls), If they are private then we can copy to dll to
bin directory of web application and then add reference and can use them.
User Controls are very much similar to ASP include files, and are easy to create. User controls can’t be placed in the toolbox and dragged – dropped from it. They have their design and code behind. The file extension for user controls is ascx.
User Controls are very much similar to ASP include files, and are easy to create. User controls can’t be placed in the toolbox and dragged – dropped from it. They have their design and code behind. The file extension for user controls is ascx.
16. What are sealed
classes in C#?
We create sealed classes when we
want to restrict the class to be inherited. Sealed modifier used to prevent
derivation from a class. If we forcefully specify a sealed class as base class
then a compile-time error occurs.
17. What is method
overloading?
Method overloading is creating
multiple methods with the same name with unique signatures in the same class.
When we compile, the compiler uses overload resolution to determine the
specific method to be invoke.
18. What is the
difference between Array and Arraylist?
In an array, we can have items of
the same type only. The size of the array is fixed. An arraylist is similar to
an array but it doesn’t have a fixed size.
19. Can a private
virtual method be overridden?
No, because they are not accessible
outside the class.
20. Describe the accessibility
modifier “protected internal”.
Protected Internal variables/methods
are accessible within the same assembly and also from the classes that are
derived from this parent class.
21. What are the differences between
System.String and System.Text.StringBuilder classes?
System.String is immutable. When we
modify the value of a string variable then a new memory is allocated to the new
value and the previous memory allocation released. System.StringBuilder was
designed to have concept of a mutable string where a variety of operations can
be performed without allocation separate memory location for the modified
string.
22. What’s the difference between
the System.Array.CopyTo() and System.Array.Clone() ?
Using Clone() method, we creates a
new array object containing all the elements in the original array and using
CopyTo() method, all the elements of existing array copies into another
existing array. Both the methods perform a shallow copy.
23. How can we sort the elements of
the array in descending order?
Using Sort() methods followed by Reverse()
method.
24. Write down the C# syntax to
catch exception?
To catch an exception, we use try
catch blocks. Catch block can have parameter of system.Exception type.
Eg:
|
1
2
3
4
5
6
7
|
try
{
GetAllData();
}
catch(Exception ex)
{
}
|
In the above example, we can omit
the parameter from catch statement.
25. What’s the
difference between an interface and abstract class?
Interfaces have all the methods
having only declaration but no definition. In an abstract class, we can have
some concrete methods. In an interface class, all the methods are public. An
abstract class may have private methods.
26. What is the
difference between Finalize() and Dispose() methods?
Dispose() is called when we want for
an object to release any unmanaged resources with them. On the other hand
Finalize() is used for the same purpose but it doesn’t assure the garbage
collection of an object.
27. What are circular
references?
Circular reference is situation in
which two or more resources are interdependent on each other causes the lock
condition and make the resources unusable.
28. What are generics in
C#.NET?
Generics are used to make reusable
code classes to decrease the code redundancy, increase type safety and
performance. Using generics, we can create collection classes. To create
generic collection, System.Collections.Generic namespace should be used instead
of classes such as ArrayList in the System.Collections namespace. Generics
promotes the usage of parameterized types.
29. What is an object
pool in .NET?
An object pool is a container having
objects ready to be used. It tracks the object that is currently in use, total
number of objects in the pool. This reduces the overhead of creating and
re-creating objects.
30. List down the
commonly used types of exceptions in .Net?
ArgumentException,
ArgumentNullException , ArgumentOutOfRangeException, ArithmeticException,
DivideByZeroException ,OverflowException , IndexOutOfRangeException
,InvalidCastException ,InvalidOperationException , IOEndOfStreamException ,
NullReferenceException , OutOfMemoryException , StackOverflowException etc.
31. What are Custom
Exceptions?
Sometimes there are some errors that
need to be handeled as per user requirements. Custom exceptions are used for
them and are used defined exceptions.
32. What are delegates?
Delegates are same are function
pointers in C++ but the only difference is that they are type safe unlike
function pointers. Delegates are required because they can be used to write
much more generic type safe functions.
33. How do you inherit a
class into other class in C#?
Colon is used as inheritance
operator in C#. Just place a colon and then the class name.
|
1
|
public class DerivedClass
: BaseClass
|
34. What is the base
class in .net from which all the classes are derived from?
|
1
|
System.Object
|
35. What is the
difference between method overriding and method overloading?
In method overriding, we change the
method definition in the derived class that changes the method behavior. Method
overloading is creating a method with the same name within the same class
having different signatures.
36. What are the different ways a
method can be overloaded?
Methods can be overloaded using
different data types for parameter, different order of parameters, and
different number of parameters.
37. Why can’t you specify the
accessibility modifier for methods inside the interface?
In an interface, we have virtual
methods that do not have method definition. All the methods are there to be
overridden in the derived class. That’s why they all are public.
38. How can we set class
to be inherited, but prevent the method from being over-ridden?
Declare the class as public and make
the method sealed to prevent it from being overridden.
39. What happens if the inherited
interfaces have conflicting method names?
Implement is up to you as the method
is inside your own class. There might be problem when the methods from
different interfaces expect different data, but as far as compiler cares you’re
okay.
40. What is the difference between a
Struct and a Class?
Structs are value-type variables and
classes are reference types. Structs stored on the stack, causes additional
overhead but faster retrieval. Structs cannot be inherited.
41. How to use nullable
types in .Net?
Value types can take either their
normal values or a null value. Such types are called nullable types.
|
1
2
3
4
|
Int? someID = null;
If(someID.HasVAlue)
{
}
|
42. How we can create an
array with non-default values?
We can create an array with
non-default values using Enumerable.Repeat.
43. What is difference
between is and as operators in c#?
“is” operator is used to check the
compatibility of an object with a given type and it returns the result as
Boolean.
“as” operator is used for casting of
object to a type or a class.
44. What’s a multicast
delegate?
A delegate having multiple handlers
assigned to it is called multicast delegate. Each handler is assigned to a
method.
45. What are indexers
in C# .NET?
Indexers are known as smart arrays
in C#. It allows the instances of a class to be indexed in the same way as
array.
Eg:
|
1
|
public int this[int index]
// Indexer declaration
|
46. What is difference
between the “throw” and “throw ex” in .NET?
“Throw” statement preserves original
error stack whereas “throw ex” have the stack trace from their throw point. It
is always advised to use “throw” because it provides more accurate error
information.
47. What are C#
attributes and its significance?
C# provides developers a way to
define declarative tags on certain entities eg. Class, method etc. are called
attributes. The attribute’s information can be retrieved at runtime using
Reflection.
48. How to implement
singleton design pattern in C#?
In singleton pattern, a class can
only have one instance and provides access point to it globally.
Eg:
|
1
2
3
4
|
Public sealed class Singleton
{
Private static readonly Singleton
_instance = new Singleton();
}
|
49. What is the
difference between directcast and ctype?
DirectCast is used to convert the
type of an object that requires the run-time type to be the same as the
specified type in DirectCast.
Ctype is used for conversion where
the conversion is defined between the expression and the type.
50. Is C# code is
managed or unmanaged code?
C# is managed code because Common
language runtime can compile C# code to Intermediate language.
Read more at http://www.gointerviews.com/top-50-c-sharp-interview-questions-answers/#lRxSKkVlId5OwwCV.99
=======================================================================
1. What are new features of C#3.0?
·
Implicitly Typed Local
Variables
Using "Var" keyword we can declare implicit type
variable. In implicitly typed local variable declaration, the type of the local
variable being declared is inferred from the expression used to initialize the
variable.
E.g
int a = 5;
var b = 6;
var c =
"myName";
Console.WriteLine("'a': "+a.GetType());
Console.WriteLine("'b': " + b.GetType());
Console.WriteLine("'c': " + c.GetType());
Console.ReadLine();

·
Object and Collection
Initializers
In this new features we can initialize the members of the object
using { and } parenthesis and separated by commas. Each member to which we are
initializing should be accessible field or property, followed by an equal's
sign and an expression or an object or value.
E.g
public class Employee
{
string _empID;
public string
EmpID
{
get { return
_empID; }
set { _empID =
value; }
}
string _name;
public string Name
{
get { return
_name; }
set { _name =
value; }
}
long _salary;
public long Salary
{
get { return
_salary; }
set { _salary
= value; }
}
}
//Object and
Collection Initializers
Employee _emp = new
Employee() { EmpID = "1001", Name = "Sam", Salary = 10000
};
·
Anonymous Types
In c# 3.0, we can create an object of an anonymous type suing
"new" keyword. It is nameless class type that inherits directly from
"object". The members of an anonymous type are a sequence of
read/write properties , it will be initialize while creating object.
var emp = new
{ ID = "1001", Name = "Ram", Designation = "SE"
};
Console.WriteLine("Emp ID: "+emp.ID );
Console.WriteLine("Emp Name: " + emp.Name);
Console.ReadLine();

·
Automatically
Implemented Properties
In earlier for creating property inside a class, we need to
create a private member and create a property that private member for accessing
this member field. But in case of C#3.0 we can automatically implement the properties
without member field.
E.g
public class Employee
{
public string
EmpID
{ get; set; }
public string Name
{ get; set; }
public int Age
{ get; set; }
}
·
Extension Methods
It is a new feature in c# 3.0, which allows developer to add
functionality in existing class without modifying the existing class or
recompiling the existing class or extending the existing class.
E.g: In this example we have extended the "string"
class with new method "AppendedMyString()"
public static class ExtendedMethodForString
{
public static
string AppendedMyString(this string s)
{
return s +
"myNewStringAppended";
}
}
string a;
Console.WriteLine(a.AppendedMyString());
·
Language integrated
Query(LINQ)
2. How will you declare implicit type variable?
Implicit type variable
can be declared using "var" keyword. In implicitly typed local
variable declaration, the type of the local variable being declared is inferred
from the expression used to initialize the variable.
While declaring
implicit type variable it should follow these restrictions.
·
The declarator must
include an initializer.
·
The initializer must
be an expression.
·
The initializer
expression must have a compile-time type which cannot be the null type.
·
The local variable
declaration cannot include multiple declarators.
·
The initializer cannot
refer to the declared variable itself
Example:
var b = 6;
var c =
"Hello";
var d = 1.0;
var numbers =
new int[] { 1, 2, 3 };
var orders =
new Dictionary();
var name;
//Invalid declartion
3. How will you declare collection of object using c# 3.0?
Collections of object
can be initialize using { and } parenthesis and separated by commas. In the
below example we have declared the Employee class with EmpID and Name
properties. While creating the collection of employee, we have created new
instance for employee and assign value to all the properties as shown below.
Example:
public class Employee
{
string _empID;
public string
EmpID
{
get { return
_empID; }
set { _empID =
value; }
}
string _name;
public string Name
{
get { return
_name; }
set { _name =
value; }
}
}
//Object and Collection Initializers
List empColl = new List
{ new Employee() { EmpID = "1001", Name = "Sam" }
, new
Employee() { EmpID = "1002", Name = "Ram" } };
foreach
(Employee emp in empColl)
{
Console.WriteLine(emp.Name );
}
4. What is mean by Anonymous type?
In c# 3.0, we can
create an object of an anonymous type suing "new" keyword. It is
nameless class type that inherits directly from "object". The members
of an anonymous type are a sequence of read/write properties, it will be
initializing while creating object.
var emp = new { ID = "1001", Name = "Ram",
Designation = "SE" };
Console.WriteLine("Emp ID: "+emp.ID );
Console.WriteLine("Emp Name: " + emp.Name);
Console.ReadLine();

5. How will you declare property in c# 3.0?
In C#3.0 we can
declare member of the class as Property without creating member field for
specific property. In the below example we have created the Employee class with
EmpID, Name and Age property.
Example:
public class Employee
{
public string
EmpID
{ get; set; }
public string Name
{ get; set; }
public int Age
{ get; set; }
}
6. What is mean by Extension method?
It is a new feature in
c# 3.0, which allows developer to add functionality in existing class without
modifying the existing class or recompiling the existing class or extending the
existing class.
While declaring
implicit type variable it should follow these restrictions.
·
• Extended method
should be public and static
·
• First parameter
should be decorated with modifier "this", i.e it takes extenting
class as first parameter and it is called as Instance Parameter.
·
• No other modifers
like "ref", "out" etc are allowed with "this"
modifer
·
• The instance
parameter can not be a pointer type.
·
• The instance
parameter can not have the type of the type parameter. The below is not
possible.
·
public static int Obj
(this T param)
·
• If an extension
method conflicts with a member method of target type , always member method is
get invoked instead of extension method.
Example: In this
example we have extended the "string" class with new method
"AppendedMyString()"
public static class ExtendedMethodForString
{
public static
string AppendedMyString(this string s)
{
return s +
"myNewStringAppended";
}
}
string a;
Console.WriteLine(a.AppendedMyString());
7. What is the use of Extension method?
·
It is used to extends
the existing type (either value type or reference type)by adding new methods
without deriving it into a new type.
·
Microsoft intelligence
support, which could show all extension method accessible to a given
identifier.
8. What is mean by Predicate and Projection?
Predicate – It is a Boolean expression that is
intended to indicate membership of an element in a group. Example: it is used
to define how to filter items inside a loop.
//Pridicate
(age) => age > 21;
Projection - is an expression that returns a type
different from the type of its single parameter. E.g
//Projection: take sting as parameter and return int
(str) =>
str.Length
No comments:
Post a Comment