Objective C Interview Questions and Answers

Top 35+ Objective-C # Interview Questions & Answers [ FRESHERS ]

Last updated on 23rd Oct 2020, Blog, Interview Question

About author

Vikram ( (Sr Project Manager ) )

He is Highly Experienced in Respective Technical Domain with 6+ Years, Also He is a Respective Technical Trainer for Past 5 Years & Share's This Important Articles For us.

(5.0) | 16547 Ratings 2351

These C# Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of C#. As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer

These C# Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of C# . As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer.we are going to cover top 100 C#  Interview questions along with their detailed answers. We will be covering C#  scenario based interview questions, C#  interview questions for freshers as well as C#  interview questions and answers for experienced. 

1. What is C#?

Ans:

C# is an object-oriented, type-safe, and managed language that is compiled by .Net framework to generate Microsoft Intermediate Language.

2. Explain types of comment in C# with examples

Ans:

Single line

Example:

//This is a single line comment

ii. Multiple line (/* */)

Example:

/*This is a multiple line comment

We are in line 2

Last line of comment*/

3. Can multiple catch blocks be executed?

Ans:

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?

Ans:

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. Static member are by default not globally accessible it depends upon the type of access modified used. 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?

Ans:

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

Ans:

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?

Ans:

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 an Array of arrays.

8. What is the difference between ref & out parameters?

Ans:

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#?

Ans:

The ‘using’ block is used to obtain a resource and process it and then automatically dispose of when the execution of the block completed.

10. What is serialization?

Ans:

When we want to transport an object through a 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 implement ISerialize Interface. De-serialization is the reverse process of creating an object from a stream of bytes.

Subscribe For Free Demo

Error: Contact form not found.

11. Can we use “this” command within a static method?

Ans:

We can’t use ‘This’ in a static method because we can only use static variables/methods in a static method.

12. What is the difference between constants and read-only?

Ans:

Constant variables are declared and initialized at compile time. The value can’t be changed afterward. Read-only is used only when we want to assign the value at run time.

13. What is an interface class? Give one example of it

Ans:

An 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.

  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • namespace DemoApplication
  • {
  •  interface Guru99Interface
  •  {
  •   void SetTutorial(int pID, string pName);
  •   String GetTutorial();
  •  }
  •  class Guru99Tutorial : Guru99Interface
  •  {
  •   protected int TutorialID;
  •   protected string TutorialName;
  •   public void SetTutorial(int pID, string pName)
  •   {
  •    TutorialID = pID;
  •    TutorialName = pName;
  •   }
  •   public String GetTutorial()
  •   {
  •    return TutorialName;
  •   }
  •   static void Main(string[] args)
  •   {
  •    Guru99Tutorial pTutor = new Guru99Tutorial();
  •    pTutor.SetTutorial(1,”.Net by Guru99″);
  •    Console.WriteLine(pTutor.GetTutorial());
  •    Console.ReadKey();
  •   }
  •  }
  • }

14. What are value types and reference types?

Ans:

A value type holds a data value within its own memory space. Example

  • int a = 30;

Reference type stores the address of the Object where the value is being stored. Itis a pointer to another memory location.

  • string b = “Hello Guru99!!”;

15. What are Custom Control and User Control?

Ans:

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, at design time. We can easily add custom controls to Multiple Applications (If Shared Dlls). So, 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.

16. What are sealed classes in C#?

Ans:

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?

Ans:

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?

Ans:

In an array, we can have items of the same type only. The size of the array is fixed when compared. To an arraylist is similar to an array, but it doesn’t have a fixed size.

19. Can a private virtual method can be overridden?

Ans:

No, because they are not accessible outside the class.

20. Describe the accessibility modifier “protected internal”.

Ans:

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?

Ans:

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 a 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() ?

Ans:

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 methods perform a shallow copy.

23. How can we sort the elements of the Array in descending order?

Ans:

Using Sort() methods followed by Reverse() method.

24. Write down the C# syntax to catch an exception

Ans:

To catch an exception, we use try-catch blocks. Catch block can have a parameter of system.Exception type.

Eg:

  • 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?

Ans:

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?

Ans:

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?

Ans:

Circular reference is situation in which two or more resources are interdependent on each other causes the lock condition and make the resources unusable.

Course Curriculum

Get On-Demand C# Training to Build Your Skills & Advance Your Career

  • Instructor-led Sessions
  • Real-life Case Studies
  • Assignments
Explore Curriculum

28. What are generics in C#.NET?

Ans:

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?

Ans:

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

Ans:

ArgumentException

ArgumentNullException

ArgumentOutOfRangeException

ArithmeticException

DivideByZeroException

OverflowException

IndexOutOfRangeException

InvalidCastException

InvalidOperationException

IOEndOfStreamException

NullReferenceException

OutOfMemoryException

StackOverflowException

31. What are Custom Exceptions?

Ans:

Sometimes there are some errors that need to be handled as per user requirements. Custom exceptions are used for them and are used defined exceptions.

32. What are delegates?

Ans:

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#?

Ans:

Colon is used as inheritance operator in C#. Just place a colon and then the class name.

  • public class DerivedClass : BaseClass

34. What is the base class in .net from which all the classes are derived from?

Ans:

System.Object

35. What is the difference between method overriding and method overloading?

Ans:

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?

Ans:

Methods can be overloaded using different data types for a parameter, different order of parameters, and different number of parameters.

37. Why can’t you specify the accessibility modifier for methods inside the interface?

Ans:

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 the class to be inherited, but prevent the method from being over-ridden?

Ans:

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?

Ans:

Implement is up to you as the method is inside your own class. There might be a 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?

Ans:

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?

Ans:

  • Int? someID = null;
  • If(someID.HasVAlue)
  • {
  • }

42. How we can create an array with non-default values?

Ans:

We can create an array with non-default values using Enumerable.Repeat.

43. What is difference between “is” and “as” operators in c#?

Ans:

“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 an object to a type or a class.

44. What’s a multicast delegate?

Ans:

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?

Ans:

Indexers are known as smart arrays in C#. It allows the instances of a class to be indexed in the same way as an array.

Eg:

  • public int this[int index]    // Indexer declaration

46. What is difference between the “throw” and “throw ex” in .NET?

Ans:

“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?

Ans:

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 a singleton design pattern in C#?

Ans:

In a singleton pattern, a class can only have one instance and provides an access point to it globally.

Eg:

  • Public sealed class Singleton
  • {
  • Private static readonly Singleton _instance = new Singleton();
  • }

49. What is the difference between directcast and ctype?

Ans:

DirectCast is used to convert the type of 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?

Ans:

C# is managed code because Common language runtime can compile C# code to Intermediate language.

Course Curriculum

Learn Practical Oriented C# Training from Real Time Experts

Weekday / Weekend BatchesSee Batch Details

51. What is Console application?

Ans:

A console application is an application that can be run in the command prompt in Windows. For any beginner on .Net, building a console application is ideally the first step, to begin with.

52. Give an example of removing an element from the queue

Ans:

The dequeue method is used to remove an element from the queue.

  • using System;
  • using System.Collections;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • namespace DemoApplication
  • {
  •  class Program
  •  {
  •   static void Main(string[] args)
  •   {
  •    Queue qt = new Queue();
  •    qt.Enqueue(1);
  •    qt.Enqueue(2);
  •    qt.Enqueue(3);
  •    foreach (Object obj in qt)
  •    {
  •     Console.WriteLine(obj);
  •    }
  •     Console.WriteLine(); Console.WriteLine();
  •     Console.WriteLine(“The number of elements in the Queue ” + qt.Count);
  •     Console.WriteLine(“Does the Queue contain ” + qt.Contains(3));
  •     Console.ReadKey();
  •    }
  •  }

53.What are IDE’s provided by Microsoft for C# development?

Ans:

Below are the IDE’s used for C# development –

  • Visual Studio Express (VCE)
  • Visual Studio (VS)
  • Visual Web Developer

54.Explain the types of comments in C#?

Ans:

Below are the types of comments in C# –

  • Single Line Comment Eg : //
  • Multiline Comments Eg: /* */
  • XML Comments Eg : ///

55.Explain sealed class in C#?

Ans:

Sealed class is used to prevent the class from being inherited from other classes. So “sealed” modifier also can be used with methods to avoid the methods to override in the child classes.

56.Give an example of using sealed class in C#?

Ans:

Below is the sample code of sealed class in C# –

  • class X {} 
  • sealed class Y : X {}
  • Sealed methods –
  • class A
  • {
  •  protected virtual void First() { }
  •  protected virtual void Second() { }
  • }
  • class B : A
  • {
  •  sealed protected override void First() {}
  •  protected override void Second() { }
  • }

If any class inherits from class “B” then method – “First” will not be overridable as this method is sealed in class B.

57. List out the differences between Array and ArrayList in C#?

Ans:

Array stores the values or elements of same data type but arraylist stores values of different datatypes. Arrays will use the fixed length but arraylist does not uses fixed length like array.

58. Why to use “using” in C#?

Ans:

“Using” statement calls – “dispose” method internally, whenever any exception occurred in any method call and in “Using” statement objects are read only and cannot be reassignable or modifiable.

59.Explain namespaces in C#?

Ans:

Namespaces are containers for the classes. We will use namespaces for grouping the related classes in C#. “Using” keyword can be used for using the namespace in other namespace.

60. Why to use keyword “const” in C#? Give an example.

Ans:

“Const” keyword is used for making an entity constant. We can’t reassign the value to constant.

Eg:

  • const string _name = “Test”;

61. What is the difference between “constant” and “readonly” variables in C#?

Ans:

“Const” keyword is used for making an entity constant. We cannot modify the value later in the code. Value assigning is mandatory to constant variables.

“readonly” variable value can be changed during runtime and value to readonly variables can be assigned in the constructor or at the time of declaration.

62. Explain “static” keyword in C#?

Ans:

“Static” keyword can be used for declaring a static member. If the class is made static then all the members of the class are also made static. If the variable is made static then it will have a single instance and the value change is updated in this instance.

63. What is the difference between “dispose” and “finalize” variables in C#?

Ans:

Dispose – This method uses interface – “IDisposable” interface and it will free up both managed and unmanaged codes like – database connection, files etc.

Finalize – This method is called internally unlike Dispose method which is called explicitly. It is called by garbage collector and can’t be called from the code.

64. How the exception handling is done in C#?

Ans:

In C# there is a “try… catch” block to handle the error.

65.Can we execute multiple catch blocks in C#?

Ans:

No. Once any exception is occurred it executes specific exception catch block and the control comes out.

66. Why to use “finally” block in C#?

Ans:

“Finally” block will be executed irrespective of exception. So while executing the code in try block when exception is occurred, control is returned to catch block and at last “finally” block will be executed. So closing connection to database / releasing the file handlers can be kept in “finally” block.

67. What is the difference between “finalize” and “finally” methods in C#?

Ans:

Finalize – This method is used for garbage collection. So before destroying an object this method is called as part of clean up activity.

Finally – This method is used for executing the code irrespective of exception occurred or not.

68.What is the difference between “throw ex” and “throw” methods in C#?

Ans:

“throw ex” will replace the stack trace of the exception with stack trace info of re throw point.

“throw” will preserve the original stack trace info.

69. Can we have only “try” block without “catch” block in C#?

Ans:

Yes we can have only try block without catch block but we have to have finally block.

70. List out two different types of errors in C#?

Ans:

Below are the types of errors in C# –

  • Compile Time Error
  • Run Time Error
C and-C Plus Plus Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

71.Do we get error while executing “finally” block in C#?

Ans:

Yes. We may get error in finally block.

72. Mention the assembly name where System namespace lies in C#?

Ans:

Assembly Name – mscorlib.dll

73. What are the differences between static, public and void in C#?

Ans:

Static classes/methods/variables are accessible throughout the application without creating instance. Compiler will store the method address as an entry point. 

Public methods or variables are accessible throughout the application. 

Void is used for the methods to indicate it will not return any value.

74. What is the difference between “out” and “ref” parameters in C#?

Ans:

“out” parameter can be passed to a method and it need not be initialized where as “ref” parameter has to be initialized before it is used.

75. Explain Jagged Arrays in C#?

Ans:

If the elements of an array is an array then it’s called as jagged array. The elements can be of different sizes and dimensions.

76. Can we use “this” inside a static method in C#?

Ans:

No. We can’t use “this” in static method.

77.What are value types in C#?

Ans:

Below are the list of value types in C# –

  • decimal
  • int
  • byte
  • enum
  • double
  • long
  • float

78.What are reference types in C#?

Ans:

Below are the list of reference types in C# –

  • class
  • string
  • interface
  • object

79. Can we override private virtual method in C#?

Ans:

No. We can’t override private virtual methods as it is not accessible outside the class.

80. Explain access modifier – “protected internal” in C#?

Ans:

“protected internal” can be accessed in the same assembly and the child classes can also access these methods.

81. In try block if we add return statement whether finally block is executed in C#?

Ans:

Yes. Finally block will still be executed in presence of return statement in try block.

82.What you mean by inner exception in C#?

Ans:

Inner exception is a property of exception class which will give you a brief insight of the exception i.e, parent exception and child exception details.

83.Explain String Builder class in C#?

Ans:

This will represent the mutable string of characters and this class cannot be inherited. It allows us to Insert, Remove, Append and Replace the characters. “ToString()” method can be used for the final string obtained from StringBuilder. For example,

  • StringBuilder TestBuilder = new StringBuilder(“Hello”);
  • TestBuilder.Remove(2, 3); // result – “He”
  • TestBuilder.Insert(2, “lp”); // result – “Help”
  • TestBuilder.Replace(‘l’, ‘a’); // result – “Heap”

 84. What is the difference between “StringBuilder” and “String” in C#?

Ans:

StringBuilder is mutable, which means once object for stringbuilder is created, it later be modified either using Append, Remove or Replace.

String is immutable and it means we cannot modify the string object and will always create new object in memory of string type.

85. What is the difference between methods – “System.Array.Clone()” and “System.Array.CopyTo()” in C#?

Ans:

“CopyTo()” method can be used to copy the elements of one array to other. 

“Clone()” method is used to create a new array to contain all the elements which are in the original array.

86. How we can sort the array elements in descending order in C#?

Ans:

“Sort()” method is used with “Reverse()” to sort the array in descending order.

87. Explain circular reference in C#?

Ans:

This is a situation where in, multiple resources are dependent on each other and this causes a lock condition and this makes the resource to be unused.

88. List out some of the exceptions in C#?

Ans:

Below are some of the exceptions in C# –

  • NullReferenceException
  • ArgumentNullException
  • DivideByZeroException
  • IndexOutOfRangeException
  • InvalidOperationException
  • StackOverflowException etc.

89. Explain Generics in C#?

Ans:

Generics in c# is used to make the code reusable and which intern decreases the code redundancy and increases the performance and type safety.

Namespace – “System.Collections.Generic” is available in C# and this should be used over “System.Collections” types.

90. Explain object pool in C#?

Ans:

Object pool is used to track the objects which are being used in the code. So object pool reduces the object creation overhead.

91. What you mean by delegate in C#?

Ans:

Delegates are type safe pointers unlike function pointers as in C++. Delegate is used to represent the reference of the methods of some return type and parameters.

92. What are the differences between events and delegates in C#?

Ans:

Main difference between event and delegate is event will provide one more of encapsulation over delegates. So when you are using events destination will listen to it but delegates are naked, which works in subscriber/destination model.

93. Can we use delegates for asynchronous method calls in C#?

Ans:

Yes. We can use delegates for asynchronous method calls.

94.What are the uses of delegates in C#?

Ans:

Below are the list of uses of delegates in C# –

  • Callback Mechanism
  • Asynchronous Processing
  • Abstract and Encapsulate method
  • Multicasting

95.What is Nullable Types in C#?

Ans:

Variable types does not hold null values so to hold the null values we have to use nullable types. So nullable types can have values either null or other values as well.

Eg:

  • Int? mynullablevar = null;

96. Why to use “Nullable Coalescing Operator” (??) in C#?

Ans:

Nullable Coalescing Operator can be used with reference types and nullable value types. So if the first operand of the expression is null then the value of second operand is assigned to the variable. For example,

  • double? myFirstno = null;
  • double mySecno;
  • mySecno = myFirstno ?? 10.11;

97.What is the difference between “as” and “is” operators in C#?

Ans:

“as” operator is used for casting object to type or class.

“is” operator is used for checking the object with type and this will return a Boolean value.

98. Define Multicast Delegate in C#?

Ans:

A delegate with multiple handlers are called as multicast delegate. The example to demonstrate the same is given below

  • public delegate void CalculateMyNumbers(int x, int y);
  • int x = 6;
  • int y = 7;
  • CalculateMyNumbers addMyNumbers = new CalculateMyNumbers(FuncForAddingNumbers);
  • CalculateMyNumbers multiplyMyNumbers = new CalculateMyNumbers(FuncForMultiplyingNumbers);
  • CalculateMyNumbers multiCast = (CalculateMyNumbers)Delegate.Combine (addMyNumbers, multiplyMyNumbers);
  • multiCast.Invoke(a,b);

99. What is the difference between CType and Directcast in C#?

Ans:

CType is used for conversion between type and the expression.

Directcast is used for converting the object type which requires run time type to be the same as specified type.

100. Is C# code is unmanaged or managed code?

Ans:

C# code is managed code because the compiler – CLR will compile the code to Intermediate Language.

Are you looking training with Right Jobs?

Contact Us

Popular Courses