Top 50 C#-interviewvragen en antwoorden (2025)

C# Interviewvragen en antwoorden voor eerstejaarsstudenten en 2/3/5/10 jaar ervaring

Hier zijn C#-sollicitatievragen en -antwoorden voor zowel nieuwere als 5- of 10-jarige kandidaten met ervaring om hun droombaan te krijgen.

1) Wat is C#?

C# is een objectgeoriënteerde, typeveilige en beheerde taal die is gecompileerd door het .Net-framework om te genereren Microsoft Tussenliggende taal.

👉 Gratis pdf-download: vragen en antwoorden over C#-interviewinterviews


2) Leg de soorten commentaar uit C# met voorbeelden

Enkele lijn

Voorbeeld:

//This is a single line comment

ii. Meerdere regels (/* */)

Voorbeeld:

/*This is a multiple line comment
We are in line 2
Last line of comment*/

iii. XML-opmerkingen (///).

Voorbeeld:

/// summary;
/// Set error message for multilingual language.
/// summary

3) Kunnen meerdere catch-blokken worden uitgevoerd?

Nee, meerdere catch-blokken van hetzelfde type kunnen niet worden uitgevoerd. Zodra de juiste catch-code is uitgevoerd, wordt de besturing overgedragen naar het definitieve blok, en vervolgens wordt de code die volgt op het definitieve blok uitgevoerd.


4) Wat is het verschil tussen openbaar, statisch en leeg?

Openbaar gedeclareerde variabelen of methoden zijn overal in de applicatie toegankelijk. Statisch gedeclareerde variabelen of methoden zijn globaal toegankelijk zonder een instantie van de klasse te creëren. Statische leden zijn standaard niet globaal toegankelijk. Dit hangt af van het type gewijzigde toegang dat wordt gebruikt. De compiler slaat het adres van de methode op als toegangspunt en gebruikt deze informatie om de uitvoering te starten voordat er objecten worden gemaakt. En Void is een typemodifier die stelt dat de methode of variabele geen enkele waarde retourneert.

Object in C#

C#-interviewvragen


5) Wat is een voorwerp?

Een object is een instantie van een klasse waarmee we toegang krijgen tot de methoden van die klasse. Het trefwoord “Nieuw” wordt gebruikt om een ​​object te maken. Een klasse die een object in het geheugen aanmaakt, bevat de informatie over de methoden, variabelen en het gedrag van die klasse.


6) Definieer constructeurs

Een constructor is een lidfunctie in een klasse die dezelfde naam heeft als de klasse ervan. De constructor wordt automatisch aangeroepen wanneer een objectklasse wordt gemaakt. Het construeert de waarden van gegevensleden tijdens het initialiseren van de klasse.


7) Wat zijn gekartelde arrays?

De array die elementen van het type array bevat, wordt gekartelde array genoemd. De elementen kunnen verschillende afmetingen en afmetingen hebben. We kunnen gekartelde array ook een array van arrays noemen.


8) Wat is het verschil tussen ref- en out-parameters?

Een argument dat als ref wordt doorgegeven, moet worden geïnitialiseerd voordat het naar de methode wordt doorgegeven, terwijl de out-parameter niet hoeft te worden geïnitialiseerd voordat het naar een methode wordt doorgegeven.


9) Wat is het nut van de 'using'-instructie in C#?

Het 'gebruikende' blok wordt gebruikt om een ​​hulpbron te verkrijgen en deze te verwerken en vervolgens automatisch te verwijderen wanneer de uitvoering van het blok is voltooid.


10) Wat is serialisatie?

Wanneer we een object door een netwerk willen transporteren, moeten we het object omzetten in een stroom bytes. Het proces waarbij een object wordt omgezet in een stroom bytes wordt serialisatie genoemd. Om een ​​object serialiseerbaar te maken, moet het ISerialize Interface implementeren. De-serialisatie is het omgekeerde proces waarbij een object wordt gemaakt uit een stroom bytes.


11) Kunnen we “dit” commando gebruiken binnen een statische methode?

We kunnen 'This' niet gebruiken in een statische methode omdat we alleen statische variabelen/methoden kunnen gebruiken in een statische methode.


12) Wat is het verschil tussen constanten en alleen-lezen?

Constante variabelen worden tijdens het compileren gedeclareerd en geïnitialiseerd. De waarde kan achteraf niet meer worden gewijzigd. Alleen-lezen wordt alleen gebruikt als we de waarde tijdens runtime willen toewijzen.


13) Wat is een interfaceklasse? Geef er één voorbeeld van

Een interface is een abstracte klasse die alleen openbare abstracte methoden heeft, en de methoden hebben alleen de declaratie en niet de definitie. Deze abstracte methoden moeten in de overgeërfde klassen worden geïmplementeerd.

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) Wat zijn waardetypen en referentietypen?

Een waardetype bevat een gegevenswaarde binnen zijn eigen geheugenruimte. Voorbeeld

int a = 30;

Referentietype slaat het adres op van het object waar de waarde wordt opgeslagen. Het is een verwijzing naar een andere geheugenlocatie.

string b = "Hello Guru99!!";

15) Wat zijn aangepast beheer en gebruikersbeheer?

Aangepaste besturingselementen zijn besturingselementen die zijn gegenereerd als gecompileerde code (Dll's), die gemakkelijker te gebruiken zijn en kunnen worden toegevoegd aan de toolbox. Ontwikkelaars kunnen besturingselementen naar hun webformulieren slepen en neerzetten. Attributen kunnen dat tijdens het ontwerpen. We kunnen eenvoudig aangepaste besturingselementen toevoegen aan meerdere toepassingen (als gedeelde Dll's). Dus als ze privé zijn, kunnen we ze kopiëren naar de dll naar de bin-map van de webtoepassing en vervolgens een referentie toevoegen en ze gebruiken.

User Controls lijken erg op ASP include-bestanden en zijn eenvoudig te maken. User controls kunnen niet in de toolbox worden geplaatst en er niet vanaf worden gesleept of neergezet. Ze hebben hun eigen ontwerp en code-behind. De bestandsextensie voor user controls is ascx.


16) Wat zijn verzegelde klassen in C#?

We creëren verzegelde klassen als we willen beperken dat de klasse wordt geërfd. Verzegelde modifier die wordt gebruikt om afleiding van een klasse te voorkomen. Als we met kracht een verzegelde klasse als basisklasse specificeren, treedt er een compileerfout op.


17) Wat is overbelasting van methoden?

Overbelasting van methoden is het maken van meerdere methoden met dezelfde naam en unieke handtekeningen in dezelfde klasse. Wanneer we compileren, gebruikt de compiler overbelastingsresolutie om te bepalen welke specifieke methode moet worden aangeroepen.


18) Wat is het verschil tussen Array en Arraylist?

In een array kunnen we alleen items van hetzelfde type hebben. De grootte van de array staat bij vergelijking vast. Een arraylist is vergelijkbaar met een array, maar heeft geen vaste grootte.


19) Kan een privé virtuele methode worden overschreven?

Nee, want buiten de les zijn ze niet toegankelijk.


20) Beschrijf de toegankelijkheidsmodificator “beschermd intern”.

Beveiligde interne variabelen/methoden zijn toegankelijk binnen dezelfde assembly en ook vanuit de klassen die zijn afgeleid van deze bovenliggende klasse.


21) Wat zijn de verschillen tussen de klassen System.String en System.Text.StringBuilder?

System.String is onveranderlijk. Wanneer we de waarde van een stringvariabele wijzigen, wordt er een nieuw geheugen toegewezen aan de nieuwe waarde en wordt de vorige geheugentoewijzing vrijgegeven. System.StringBuilder is ontworpen om een ​​concept te hebben van een veranderlijke string waarbij een verscheidenheid aan bewerkingen kan worden uitgevoerd zonder toewijzing van een aparte geheugenlocatie voor de gewijzigde string.


22) Wat is het verschil tussen System.Array.CopyTo() en System.Array.Clone() ?

gebruik Clone() methode maken we een nieuw array-object dat alle elementen in de originele Array bevat en gebruikt CopyTo() methode. Alle elementen van een bestaande array worden naar een andere bestaande array gekopieerd. Beide methoden voeren een ondiepe kopie uit.


23) Hoe kunnen we de elementen van de Array in aflopende volgorde sorteren?

gebruik Sort() methoden gevolgd door Reverse() methode.


24) Schrijf de C#-syntaxis op om een ​​uitzondering op te vangen

Om een ​​uitzondering op te vangen, gebruiken we try-catch-blokken. Catch-blok kan een parameter van het type system.Exception hebben.

bv:

try {
    GetAllData();
} 
catch (Exception ex) {
}

In het bovenstaande voorbeeld kunnen we de parameter uit de catch-instructie weglaten.


25) Wat is het verschil tussen een interface en een abstracte klasse?

Interfaces hebben alle methoden met alleen declaratie maar geen definitie. In een abstracte klasse kunnen we enkele concrete methoden hebben. In een interfaceklasse zijn alle methoden openbaar. Een abstracte klasse kan privémethoden hebben.


26) Wat is het verschil tussen de methoden Finalize() en Dispose()?

Dispose() wordt aangeroepen wanneer we willen dat een object onbeheerde bronnen vrijgeeft. Aan de andere kant, Finalize() wordt voor hetzelfde doel gebruikt, maar garandeert niet dat een object afval wordt opgehaald.


27) Wat zijn kringverwijzingen?

Circulaire referentie is een situatie waarin twee of meer bronnen onderling afhankelijk zijn, waardoor de vergrendelingstoestand ontstaat en de bronnen onbruikbaar worden.


28) Wat zijn generieke geneesmiddelen in C#.NET?

Generics worden gebruikt om herbruikbare codeklassen te maken om de coderedundantie te verminderen, typeveiligheid te verhogen en de prestaties te verbeteren. Met behulp van generics kunnen we verzamelingsklassen maken. Om een ​​generieke verzameling te maken, moet de System.Collections.Generic-naamruimte worden gebruikt in plaats van klassen zoals ArrayList in de System.Collections-naamruimte. Generics promoot het gebruik van geparametriseerde typen.


29) Wat is een objectpool in .NET?

Een objectpool is een container met objecten die gereed zijn voor gebruik. Het volgt het object dat momenteel in gebruik is, het totale aantal objecten in de pool. Dit vermindert de overhead van het maken en opnieuw maken van objecten.


30) Maak een lijst van de veelgebruikte typen uitzonderingen in .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, OngeldigOperatieException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException enz.


31) Wat zijn aangepaste uitzonderingen?

Soms zijn er enkele fouten die moeten worden afgehandeld volgens de gebruikersvereisten. Hiervoor worden aangepaste uitzonderingen gebruikt en gedefinieerde uitzonderingen.


32) Wat zijn afgevaardigden?

Afgevaardigden zijn hetzelfde als functieaanwijzers C++, maar het enige verschil is dat ze typeveilig zijn, in tegenstelling tot functieaanwijzers. Er zijn afgevaardigden nodig omdat ze kunnen worden gebruikt om veel algemenere typeveilige functies te schrijven.


33) Hoe neem je een klasse over naar een andere klasse in C#?

Dubbele punt wordt gebruikt als overervingsoperator in C#. Plaats gewoon een dubbele punt en daarna de klassenaam.

public class DerivedClass : BaseClass

34) Wat is de basisklasse in .net waarvan alle klassen zijn afgeleid?

System.Object

35) Wat is het verschil tussen methode-overschrijving en methode-overbelasting?

Bij het overschrijven van methoden wijzigen we de methodedefinitie in de afgeleide klasse, waardoor het gedrag van de methode wordt gewijzigd. Methode-overbelasting is het creëren van een methode met dezelfde naam binnen dezelfde klasse met verschillende handtekeningen.


36) Op welke verschillende manieren kan een methode overbelast raken?

Methoden kunnen worden overbelast met verschillende gegevenstypen voor een parameter, een andere volgorde van parameters en een verschillend aantal parameters.


37) Waarom kunt u de toegankelijkheidsmodifier voor methoden binnen de interface niet specificeren?

In een interface hebben we virtuele methoden die geen methodedefinitie hebben. Alle methoden kunnen in de afgeleide klasse worden overschreven. Daarom zijn ze allemaal openbaar.


38) Hoe kunnen we instellen dat de klasse wordt geërfd, maar voorkomen dat de methode wordt overschreven?

Verklaar de klasse als openbaar en zorg ervoor dat de methode wordt verzegeld om te voorkomen dat deze wordt overschreven.


39) Wat gebeurt er als de overgenomen interfaces conflicterende methodenamen hebben?

Implementeren is aan jou, aangezien de methode zich in je eigen klasse bevindt. Er kan een probleem zijn als de methoden van verschillende interfaces verschillende data verwachten, maar voor zover de compiler erom geeft, is alles in orde.


40) Wat is het verschil tussen een structuur en een klasse?

Structuren zijn variabelen van het waardetype en klassen zijn referentietypen. Structuren die op de stapel zijn opgeslagen, veroorzaken extra overhead, maar kunnen sneller worden opgehaald. Structuren kunnen niet worden geërfd.


41) Hoe null-bare typen gebruiken in .Net?

Waardetypen kunnen hun normale waarden of een nulwaarde aannemen. Dergelijke typen worden nulbare typen genoemd.

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

42) Hoe kunnen we een array maken met niet-standaardwaarden?

We kunnen een array maken met niet-standaardwaarden met behulp van Enumerable.Repeat.


43) Wat is het verschil tussen de operatoren “is” en “as” in C#?

De operator "is" wordt gebruikt om de compatibiliteit van een object met een bepaald type te controleren en retourneert het resultaat als Booleaans.

De operator “as” wordt gebruikt voor het casten van een object naar een type of klasse.


44) Wat is een multicast-afgevaardigde?

Een deelnemer aan wie meerdere handlers zijn toegewezen, wordt een multicast-afgevaardigde genoemd. Elke handler wordt aan een methode toegewezen.


45) Wat zijn indexers in C# .NET?

Indexeerders staan ​​bekend als slim arrays in C#. Hiermee kunnen de instanties van een klasse op dezelfde manier worden geïndexeerd als een array.

bv:

public int this[int index]    // Indexer declaration

46) Wat is het verschil tussen de “throw” en “throw ex” in .NET?

De “Throw”-instructie behoudt de oorspronkelijke foutstapel, terwijl “throw ex” de stapeltrace vanaf hun werppunt heeft. Het wordt altijd aangeraden om “gooien” te gebruiken, omdat dit nauwkeurigere foutinformatie oplevert.


47) Wat zijn C#-attributen en de betekenis ervan?

C# biedt ontwikkelaars een manier om declaratieve tags voor bepaalde entiteiten te definiëren, bijvoorbeeld. Klasse, methode, etc. worden attributen genoemd. De informatie over het attribuut kan tijdens runtime worden opgehaald met behulp van Reflection.


48) Hoe implementeer ik een singleton-ontwerppatroon in C#?

In een singleton-patroon kan een klasse slechts één exemplaar hebben en er wereldwijd een toegangspunt voor bieden.

bv:

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

49) Wat is het verschil tussen directcast en ctype?

DirectCast wordt gebruikt om het type object te converteren waarvoor het runtimetype hetzelfde moet zijn als het opgegeven type in DirectCast.

Ctype wordt gebruikt voor conversie waarbij de conversie wordt gedefinieerd tussen de expressie en het type.


50) Is C#-code beheerde of onbeheerde code?

C# is beheerde code omdat Common Language Runtime C#-code kan compileren naar een tussentaal.


51) Wat is Console-applicatie?

Een consoletoepassing is een toepassing die via de opdrachtprompt kan worden uitgevoerd Windows. Voor enige beginner op .Net, is het bouwen van een consoleapplicatie idealiter de eerste stap om mee te beginnen.


52) Geef een voorbeeld van het verwijderen van een element uit de wachtrij

De dequeue-methode wordt gebruikt om een ​​element uit de wachtrij te verwijderen.

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();
   }
 }
}

Deze interviewvragen zullen ook helpen bij je viva (oralen)