61) What you mean by boxing and unboxing in C#?
Boxing – This is the process of
converting from value type to reference type. For example,
int myvar = 10;
object myObj = myvar;
UnBoxing – It’s completely
opposite to boxing. It’s the process of converting reference type to value
type. For example,
int myvar2 = (int)myObj;
62) Explain Partial Class in C#?
Partial classes concept added in
.Net Framework 2.0 and it allows us to split the business logic in multiple
files with the same class name along with “partial” keyword.
63) Explain Anonymous type in C#?
This is being added in C# 3.0
version. This feature enables us to create an object at compile time. Below is
the sample code for the same –
Var myTestCategory = new {
CategoryId = 1, CategoryName = “Category1”};
64) Name the compiler of C#?
C# Compiler is – CSC.
65) Explain the types of unit test cases?
Below are the list of unit test
case types –
Positive Test cases
Negative Test cases
Exception Test cases
66) Explain Copy constructor in C#?
If the constructor contains the
same class in the constructor parameter then it is called as copy constructor.
class MyClass
{
public string prop1, prop2;
public MyClass(string a, string b)
{
prop1 = a;
prop2 = b;
}
public MyClass(MyClass myobj) // Copy
Constructor
{
prop1 = myobj.prop1;
prop2 = myobj.prop2;
}
}
67) Explain Static constructor in C#?
If the constructor is declared as
static then it will be invoked only once for all number of instances of a
class. Static constructor will initialize the static fields of a class.
class MyClass
{
public string prop1, prop2;
public MyClass(string a, string b)
{
prop1 = a;
prop2 = b;
}
Static MyClass()
{
Console.WriteLine(“Static Constr Test”);
}
public MyClass(MyClass myobj) // Copy
Constructor
{
prop1 = myobj.prop1;
prop2 = myobj.prop2;
}
}
68) Which string method is used for concatenation of two strings in c#?
“Concat” method of String class
is used to concatenate two strings. For example,
string.Concat(firstStr, secStr)
69) Explain Indexers in C#?
Indexers are used for allowing
the classes to be indexed like arrays. Indexers will resemble the property
structure but only difference is indexer’s accessors will take parameters. For
example,
class MyCollection
{
private T[] myArr = new T[100];
public T this[int t]
{
get
{
return myArr[t];
}
set
{
myArr[t] = value;
}
}
}
70) What are the collection types can be used in C#?
Below are the collection types in
C# -
ArrayList
Stack
Queue
SortedList
HashTable
Bit Array
71) Explain Attributes in C#?
Attributes are used to convey the
info for runtime about the behavior of elements like – “methods”, “classes”,
“enums” etc.
Attributes can be used to add
metadata like – comments, classes, compiler instruction etc.
72) List out the pre defined attributes in C#?
Below are the predefined
attributes in C# -
Conditional
Obsolete
Attribute Usage
73) What is Thread in C#?
Thread is an execution path of a
program. Thread is used to define the different or unique flow of control. If
our application involves some time consuming processes then it’s better to use
Multithreading., which involves multiple threads.
74) List out the states of a thread in C#?
Below are the states of thread –
Unstarted State
Ready State
Not Runnable State
Dead State
75) Explain the methods and properties of Thread class in C#?
Below are the methods and
properties of thread class –
CurrentCulture
CurrentThread
CurrentContext
IsAlive
IsThreadPoolThread
IsBackground
Priority
76) What is a class ?
A class is the generic definition
of what an object is. A Class describes all the attributes of the object, as
well as the methods that implement the behavior of the member object. In other
words, class is a template of an object. For ease of understanding a class, we
will look at an example. In the class Employee given below, Name and Salary are
the attributes of the class Person. The Setter and Getter methods are used to
store and fetch data from the variable.
public class Employee
{
private String name;
private String Salary;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSalary ()
{
return Salary;
}
public void setSalary (String
Salary)
{
this. Salary = Salary;
}
}
77) What is an Object?
An object is an instance of a
class. It contains real values instead of variables. For example, let us create
an instance of the class Employee called “John”.
Employee John= new Employee();
Now we can access all the methods
in the class “Employee” via object “John” as shown below.
John.setName(“XYZ”);
78) What are the Access Modifiers in C# ?
Different Access Modifier are -
Public, Private, Protected, Internal, Protected Internal
Public – When a method or
attribute is defined as Public, it can be accessed from any code in the
project. For example, in the above Class “Employee” getName() and setName() are
public.
Private - When a method or
attribute is defined as Private, It can be accessed by any code within the
containing class only. For example, in the above Class “Employee” attributes
name and salary can be accessed within the Class Employee Only. If an attribute
or class is defined without access modifiers, it's default access modifier will
be private.
Protected - When attribute and
methods are defined as protected, it can be accessed by any method in the
inherited classes and any method within the same class. The protected access
modifier cannot be applied to classes and interfaces. Methods and fields in a
interface can't be declared protected.
Internal – If an attribute or
method is defined as Internal, access is restricted to classes within the
current project assembly.
Protected Internal – If an
attribute or method is defined as Protected Internal, access is restricted to
classes within the current project assembly and types derived from the
containing class.
79) Explain Static Members in C# ?
If an attribute's value had to be
same across all the instances of the same class, the static keyword is used.
For example, if the Minimum salary should be set for all employees in the
employee class, use the following code.
private static double MinSalary =
30000;
To access a private or public
attribute or method in a class, at first an object of the class should be
created. Then by using the object instance of that class, attributes or methods
can be accessed. To access a static variable, we don't want to create an
instance of the class containing the static variable. We can directly refer
that static variable as shown below.
double var = Employee.MinSalary ;
80) What is Reference Type in C# ?
Let us explain this with the help
of an example. In the code given below,
Employee emp1;
Employee emp2 = new Employee();
emp1 = emp2;
Here emp2 has an object instance
of Employee Class. But emp1 object is set as emp2. What this means is that the
object emp2 is referred in emp1, rather than copying emp2 instance into emp1.
When a change is made in emp2 object, corresponding changes can be seen in emp1
object.
81) Define Property in C# ?
Properties are a type of class
member, that are exposed to the outside world as a pair of Methods. For
example, for the static field Minsalary, we will Create a property as shown
below.
private double minimumSalary;
public static double MinSalary
{
get
{
return minimumSalary;
}
set
{
minimumSalary = value;
}
}
So when we execute the following
lines code
double minSal =
Employee.MinSalary;
get Method will get triggered and
value in minimumSalary field will be returned. When we execute,
Employee. MinSalary = 3000;
set Method will get triggered and
value will be stored in minimumSalary field.
82) Explain Overloading in C# ?
When methods are created with the
same name, but with different signature its called overloading. For example,
WriteLine method in console class is an example of overloading. In the first
instance, it takes one variable. In the second instance, “WriteLine” method
takes two variable.
Console.WriteLine(x);
Console.WriteLine("The
message is {0}", Message);
Different types of overloading in
C# are
Constructor overloading
Function overloading
Operator overloading
83) What is Constructor Overloading in C# .net ?
In Constructor overloading, n
number of constructors can be created for the same class. But the signatures of
each constructor should vary. For example
public class Employee
{
public Employee()
{ }
public Employee(String Name)
{ }
}
84) What is Function Overloading in C# .net ?
In Function overloading, n number
of functions can be created for the same class. But the signatures of each
function should vary. For example
public class Employee
{
public void Employee()
{ }
public void Employee(String Name)
{ }
}
85) What is Operator Overloading in C# .net ?
We had seen function overloading
in the previous example. For operator Overloading, we will have a look at the
example given below. We had defined a class rectangle with two operator
overloading methods.
class Rectangle
{
private int Height;
private int Width;
public Rectangle(int w,int h)
{
Width=w;
Height=h;
}
public static bool operator >(Rectangle
a,Rectangle b)
{
return a.Height > b.Height ;
}
public static bool operator <(Rectangle
a,Rectangle b)
{
return a.Height < b.Height ;
}
}
Let us call the operator
overloaded functions from the method given below. When first if condition is
triggered, the first overloaded function in the rectangle class will be
triggered. When second if condition is triggered, the second overloaded
function in the rectangle class will be triggered.
public static void Main()
{
Rectangle obj1 =new Rectangle();
Rectangle obj2 =new Rectangle();
if(obj1 > obj2)
{
Console.WriteLine("Rectangle1 is greater than Rectangle2");
}
if(obj1 < obj2)
{
Console.WriteLine("Rectangle1 is less than Rectangle2");
}
}
86) What is Data Encapsulation ?
Data Encapsulation is defined as
the process of hiding the important fields from the end user. In the above
example, we had used getters and setters to set value for MinSalary. The idea
behind this is that, private field “minimumSalary” is an important part of our
classes. So if we give a third party code to have complete control over the
field without any validation, it can adversely affect the functionality. This
is inline with the OOPS Concept that an external user should know about the
what an object does. How it does it, should be decided by the program. So if a
user set a negative value for MinSalary, we can put a validation in the set
method to avoid negative values as shown below
set
{
if(value > 0)
{
minSalary = value;
}
}
87) Explain Inheritance in C# ?
In object-oriented programming
(OOP), inheritance is a way to reuse code of existing objects. In inheritance,
there will be two classes - base class and derived classes. A class can inherit
attributes and methods from existing class called base class or parent class.
The class which inherits from a base class is called derived classes or child
class. For more clarity on this topic, let us have a look at 2 classes shown
below. Here Class Car is Base Class and Class Ford is derived class.
class Car
{
public Car()
{
Console.WriteLine("Base Class Car");
}
public void DriveType()
{
Console.WriteLine("Right Hand Drive");
}
}
class Ford : Car
{
public Ford()
{
Console.WriteLine("Derived Class Ford");
}
public void Price()
{
Console.WriteLine("Ford Price : 100K $");
}
}
When we execute following lines
of code ,
Ford CarFord = new Ford();
CarFord.DriveType();
CarFord.Price();
Output Generated is as given
below.
Base Class Car
Derived Class Ford
Right Hand Drive
Ford Price : 100K $
What this means is that, all the
methods and attributes of Base Class car are available in Derived Class Ford.
When an object of class Ford is created, constructors of the Base and Derived
class get invoked. Even though there is no method called DriveType() in Class
Ford, we are able to invoke the method because of inheriting Base Class methods
to derived class.
88) Can Multiple Inheritance implemented in C# ?
In C#, derived classes can
inherit from one base class only. If you want to inherit from multiple base
classes, use interface.
89) What is Polymorphism in C# ?
The ability of a programming
language to process objects in different ways depending on their data type or
class is known as Polymorphism. There are two types of polymorphism
Compile time polymorphism. Best
example is Overloading
Runtime polymorphism. Best
example is Overriding
90) Explain the use of Virtual Keyword in C# ?
When we want to give permission
to a derived class to override a method in base class, Virtual keyword is used.
For example. lets us look at the classes Car and Ford as shown below.
class Car
{
public Car()
{
Console.WriteLine("Base Class Car");
}
public virtual void DriveType()
{
Console.WriteLine("Right Hand Drive");
}
}
class Ford : Car
{
public Ford()
{
Console.WriteLine("Derived Class Ford");
}
public void Price()
{
Console.WriteLine("Ford Price : 100K $");
}
public override void DriveType()
{
Console.WriteLine("Right Hand ");
}
}
When following lines of code get
executed
Car CarFord = new Car();
CarFord.DriveType();
CarFord = new Ford();
CarFord.DriveType();
Output is as given below.
Base Class Car
Right Hand Drive
Base Class Car
Derived Class Ford
Right Hand
91) What is overriding in c# ?
To override a base class method
which is defined as virtual, Override keyword is used. In the above example,
method DriveType is overridden in the derived class.
92) What is Method Hiding in C# ?
If the derived class doesn't want
to use methods in the base class, derived class can implement it's own version
of the same method with same signature. For example, in the classes given
below, DriveType() is implemented in the derived class with same signature.
This is called Method Hiding.
class Car
{
public void DriveType()
{
Console.WriteLine("Right Hand Drive");
}
}
class Ford : Car
{
public void DriveType()
{
Console.WriteLine("Right Hand ");
}
}
93) What is Abstract Class in C#?
If we don't want a class to be
instantiated, define the class as abstract. An abstract class can have abstract
and non abstract classes. If a method is defined as abstract, it must be
implemented in derived class. For example, in the classes given below, method DriveType
is defined as abstract.
abstract class Car
{
public Car()
{
Console.WriteLine("Base Class Car");
}
public abstract void DriveType();
}
class Ford : Car
{
public void DriveType()
{
Console.WriteLine("Right Hand ");
}
}
Method DriveType get implemented
in derived class.
94) What is Sealed Classes in c# ?
If a class is defined as Sealed,
it cannot be inherited in derived class. Example of a sealed class is given
below.
public sealed class Car
{
public Car()
{
Console.WriteLine("Base Class Car");
}
public void DriveType()
{
Console.WriteLine("Right Hand ");
}
}
95) What is an Interface in C# ?
An interface is similar to a
class with method signatures. There wont be any implementation of the methods
in an Interface. Classes which implement interface should have an
implementation of methods defined in the abstract class.
96) What is a Constructor in C# ?
Constructor is a special method
that get invoked/called automatically, whenever an object of a given class gets
instantiated. In our class car, constructor is defined as shown below
public Car()
{
Console.WriteLine("Base Class Car");
}
When ever an instance of class
car is created from the same class or its derived class(Except Few Scenarios),
Constructor get called and sequence of code written in the constructor get
executed.
interface Breaks
{
void BreakType();
}
interface Wheels
{
void WheelType();
}
class Ford : Breaks, Wheels
{
public Ford()
{
Console.WriteLine("Derived Class Ford");
}
public void Price()
{
Console.WriteLine("Ford Price : 100K $");
}
public void BreakType()
{
Console.WriteLine("Power Break");
}
public void WheelType()
{
Console.WriteLine("Bridgestone");
}
}
97) What is a Destructor in C# ?
Destructor is a special method
that get invoked/called automatically whenever an object of a given class gets
destroyed. Main idea behind using destructor is to free the memory used by the
object.
Comments
Post a Comment