Topp 50 C#-intervjuspørsmål og -svar (2025)

C#-intervjuspørsmål og svar for ferskinger og 2/3/5/10 års erfaring

Her er C#-intervjuspørsmål og svar for ferskere og 5 eller 10 års erfarne kandidater for å få drømmejobben.

1) Hva er C#?

C# er et objektorientert, typesikkert og administrert språk som er kompilert av .Net framework for å generere Microsoft Mellomspråk.

👉 Gratis PDF-nedlasting: C# Intervju Intervju Spørsmål og Svar


2) Forklar typer kommentarer i C# med eksempler

Enkel linje

Eksempel:

//This is a single line comment

ii. Flere linjer (/* */)

Eksempel:

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

iii. XML-kommentarer (///).

Eksempel:

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

3) Kan flere catch-blokker utføres?

Nei, flere catch-blokker av lignende type kan ikke kjøres. Når den riktige fangstkoden er utført, overføres kontrollen til den endelige blokken, og deretter blir koden som følger den endelige blokken, utført.


4) Hva er forskjellen mellom offentlig, statisk og ugyldig?

Offentlige deklarerte variabler eller metoder er tilgjengelige hvor som helst i applikasjonen. Statiske deklarerte variabler eller metoder er globalt tilgjengelige uten å opprette en forekomst av klassen. Statiske medlemmer er som standard ikke globalt tilgjengelige, det avhenger av hvilken type tilgang som brukes. Kompilatoren lagrer adressen til metoden som inngangspunkt og bruker denne informasjonen til å starte kjøringen før noen objekter opprettes. Og Void er en typemodifikator som sier at metoden eller variabelen ikke returnerer noen verdi.

Objekt i C#

C#-intervjuspørsmål


5) Hva er en gjenstand?

Et objekt er en forekomst av en klasse der vi får tilgang til metodene til den klassen. "Nytt" nøkkelord brukes til å lage et objekt. En klasse som lager et objekt i minnet vil inneholde informasjon om metodene, variablene og oppførselen til den klassen.


6) Definer konstruktører

En konstruktør er en medlemsfunksjon i en klasse som har samme navn som klassen. Konstruktøren påkalles automatisk når en objektklasse opprettes. Den konstruerer verdiene til datamedlemmer mens den initialiserer klassen.


7) Hva er Jagged Arrays?

Arrayen som har elementer av typen array kalles taggete Array. Elementene kan ha forskjellige dimensjoner og størrelser. Vi kan også kalle taggete Array som en Array av arrays.


8) Hva er forskjellen mellom ref og ut parametere?

Et argument som sendes som ref må initialiseres før det overføres til metoden, mens ut parameter ikke trenger å initialiseres før det overføres til en metode.


9) Hva er bruken av 'using'-setning i C#?

"Bruker"-blokken brukes til å skaffe en ressurs og behandle den og deretter automatisk kassere når utførelsen av blokken er fullført.


10) Hva er serialisering?

Når vi ønsker å transportere et objekt gjennom et nettverk, må vi konvertere objektet til en strøm av byte. Prosessen med å konvertere et objekt til en strøm av byte kalles serialisering. For at et objekt skal kunne serialiseres, bør det implementere ISerialize Interface. De-serialisering er den omvendte prosessen med å lage et objekt fra en strøm av byte.


11) Kan vi bruke "denne" kommandoen innenfor en statisk metode?

Vi kan ikke bruke 'Dette' i en statisk metode fordi vi kun kan bruke statiske variabler/metoder i en statisk metode.


12) Hva er forskjellen mellom konstanter og skrivebeskyttet?

Konstante variabler deklareres og initialiseres på kompileringstidspunktet. Verdien kan ikke endres etterpå. Skrivebeskyttet brukes kun når vi ønsker å tilordne verdien ved kjøretid.


13) Hva er en grensesnittklasse? Gi ett eksempel på det

Et grensesnitt er en abstrakt klasse som bare har offentlige abstrakte metoder, og metodene har bare erklæringen og ikke definisjonen. Disse abstrakte metodene må implementeres i de arvede klassene.

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) Hva er verdityper og referansetyper?

En verditype har en dataverdi innenfor sin egen minneplass. Eksempel

int a = 30;

Referansetype lagrer adressen til objektet der verdien lagres. Det er en peker til en annen minneplassering.

string b = "Hello Guru99!!";

15) Hva er tilpasset kontroll og brukerkontroll?

Egendefinerte kontroller er kontroller generert som kompilert kode (Dlls), de er enklere å bruke og kan legges til i verktøykassen. Utviklere kan dra og slippe kontroller til nettskjemaene sine. Attributter kan, på designtidspunktet. Vi kan enkelt legge til egendefinerte kontroller til flere applikasjoner (hvis delte Dller). Så hvis de er private, kan vi kopiere til dll til bin-katalogen til webapplikasjonen og deretter legge til referanse og bruke dem.

Brukerkontroller ligner mye på ASP-inkluderingsfiler, og er enkle å lage. Brukerkontroller kan ikke plasseres i verktøykassen og dras – slippes fra den. De har sitt design og kode bak. Filtypen for brukerkontroller er ascx.


16) Hva er forseglede klasser i C#?

Vi oppretter forseglede klasser når vi ønsker å begrense klassen som skal arves. Forseglet modifikator som brukes for å forhindre avledning fra en klasse. Hvis vi med kraft spesifiserer en forseglet klasse som basisklasse, oppstår en kompileringstidsfeil.


17) Hva er metodeoverbelastning?

Metodeoverbelastning er å lage flere metoder med samme navn med unike signaturer i samme klasse. Når vi kompilerer, bruker kompilatoren overbelastningsoppløsning for å bestemme den spesifikke metoden som skal påberopes.


18) Hva er forskjellen mellom Array og Arraylist?

I en matrise kan vi bare ha elementer av samme type. Størrelsen på matrisen er fast når den sammenlignes. En matriseliste ligner på en matrise, men den har ikke en fast størrelse.


19) Kan en privat virtuell metode overstyres?

Nei, fordi de ikke er tilgjengelige utenfor klassen.


20) Beskriv tilgjengelighetsmodifikatoren "beskyttet intern".

Beskyttede interne variabler/metoder er tilgjengelige innenfor samme samling og også fra klassene som er avledet fra denne overordnede klassen.


21) Hva er forskjellene mellom System.String og System.Text.StringBuilder-klassene?

System.String er uforanderlig. Når vi endrer verdien til en strengvariabel, blir et nytt minne allokert til den nye verdien og den forrige minneallokeringen frigitt. System.StringBuilder ble designet for å ha et konsept med en mutbar streng der en rekke operasjoner kan utføres uten tildeling av separat minneplassering for den modifiserte strengen.


22) Hva er forskjellen mellom System.Array.CopyTo() og System.Array.Clone()?

Ved hjelp av Clone() metoden, lager vi et nytt array-objekt som inneholder alle elementene i den originale Arrayen og bruker CopyTo() metode. Alle elementene i eksisterende array kopierer til en annen eksisterende array. Begge metodene utfører en grunn kopi.


23) Hvordan kan vi sortere elementene i Arrayen i synkende rekkefølge?

Ved hjelp av Sort() metoder etterfulgt av Reverse() metoden.


24) Skriv ned C#-syntaksen for å fange et unntak

For å fange et unntak bruker vi try-catch-blokker. Catch blokk kan ha en parameter av system.Exception type.

Eg:

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

I eksemplet ovenfor kan vi utelate parameteren fra catch statement.


25) Hva er forskjellen mellom et grensesnitt og en abstrakt klasse?

Grensesnitt har alle metodene som kun har deklarasjon, men ingen definisjon. I en abstrakt klasse kan vi ha noen konkrete metoder. I en grensesnittklasse er alle metodene offentlige. En abstrakt klasse kan ha private metoder.


26) Hva er forskjellen mellom Finalize() og Dispose() metoder?

Dispose() kalles når vi ønsker at et objekt skal frigi eventuelle uadministrerte ressurser med dem. På den annen side, Finalize() brukes til samme formål, men det garanterer ikke søppelinnsamling av et objekt.


27) Hva er sirkulære referanser?

Sirkulær referanse er situasjoner der to eller flere ressurser er gjensidig avhengige av hverandre forårsaker låsetilstanden og gjør ressursene ubrukelige.


28) Hva er generikk i C#.NET?

Generikk brukes til å lage gjenbrukbare kodeklasser for å redusere koderedundansen, øke typesikkerheten og ytelsen. Ved å bruke generikk kan vi lage samlingsklasser. For å lage generisk samling, bør System.Collections.Generic navneområde brukes i stedet for klasser som ArrayList i System.Collections navneområde. Generics fremmer bruken av parameteriserte typer.


29) Hva er en objektpool i .NET?

En objektpool er en beholder med objekter klare til bruk. Den sporer objektet som er i bruk, totalt antall objekter i bassenget. Dette reduserer kostnadene ved å lage og gjenskape objekter.


30) List ned de vanligste typene unntak i .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException ,OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException , NullReferenceException, OutOfMemoryException, StackOverflowException osv.


31) Hva er tilpassede unntak?

Noen ganger er det noen feil som må håndteres i henhold til brukerkrav. Egendefinerte unntak brukes for dem og brukes definerte unntak.


32) Hva er delegater?

Delegater er de samme er funksjonspekere i C++, men den eneste forskjellen er at de er typesikre, i motsetning til funksjonspekere. Delegater kreves fordi de kan brukes til å skrive mye mer generiske typesikre funksjoner.


33) Hvordan arver du en klasse til en annen klasse i C#?

Kolon brukes som arveoperator i C#. Bare plasser et kolon og deretter klassenavnet.

public class DerivedClass : BaseClass

34) Hva er basisklassen i .net som alle klassene er avledet fra?

System.Object

35) Hva er forskjellen mellom metodeoverstyring og metodeoverbelastning?

Ved metodeoverstyring endrer vi metodedefinisjonen i den avledede klassen som endrer metodeoppførselen. Metodeoverbelastning er å lage en metode med samme navn innenfor samme klasse med forskjellige signaturer.


36) Hva er de forskjellige måtene en metode kan overbelastes på?

Metoder kan overbelastes ved å bruke forskjellige datatyper for en parameter, forskjellig rekkefølge av parametere og forskjellig antall parametere.


37) Hvorfor kan du ikke spesifisere tilgjengelighetsmodifikatoren for metoder inne i grensesnittet?

I et grensesnitt har vi virtuelle metoder som ikke har metodedefinisjon. Alle metodene er der for å bli overstyrt i den avledede klassen. Det er derfor de alle er offentlige.


38) Hvordan kan vi sette klassen til å arves, men forhindre at metoden blir overstyrt?

Erklær klassen som offentlig og gjør metoden forseglet for å forhindre at den blir overstyrt.


39) Hva skjer hvis de nedarvede grensesnittene har motstridende metodenavn?

Implementering er opp til deg da metoden er i din egen klasse. Det kan være et problem når metodene fra forskjellige grensesnitt forventer forskjellige data, men når det gjelder kompilatoren er du ok.


40) Hva er forskjellen mellom en struktur og en klasse?

Strukturer er verditypevariabler, og klasser er referansetyper. Strukturer som er lagret på stakken forårsaker ekstra overhead, men raskere gjenfinning. Strukturer kan ikke arves.


41) Hvordan bruke nullbare typer i .Net?

Verdityper kan ha enten deres normale verdier eller en nullverdi. Slike typer kalles nullbare typer.

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

42) Hvordan kan vi lage en matrise med ikke-standardverdier?

Vi kan lage en matrise med ikke-standardverdier ved å bruke Enumerable.Repeat.


43) Hva er forskjellen mellom "is" og "as" operatorer i c#?

"is"-operator brukes til å sjekke kompatibiliteten til et objekt med en gitt type, og den returnerer resultatet som boolsk.

"som"-operator brukes til å støpe et objekt til en type eller en klasse.


44) Hva er en multicast-delegat?

En delegat som har flere behandlere tilordnet kalles multicast-delegat. Hver behandler er tildelt en metode.


45) Hva er indeksere i C# .NET?

Indeksere er kjent som smarte arrays i C#. Den lar forekomstene av en klasse indekseres på samme måte som en matrise.

Eg:

public int this[int index]    // Indexer declaration

46) Hva er forskjellen mellom "kast" og "kast ex" i .NET?

"Throw"-setningen bevarer den opprinnelige feilstabelen, mens "throw ex" har stabelsporet fra kastepunktet. Det anbefales alltid å bruke "kast" fordi det gir mer nøyaktig feilinformasjon.


47) Hva er C#-attributter og deres betydning?

C# gir utviklere en måte å definere deklarative tagger på visse enheter, f.eks. Klasse, metode osv. kalles attributter. Attributtets informasjon kan hentes under kjøring ved hjelp av Reflection.


48) Hvordan implementere et singleton designmønster i C#?

I et singleton-mønster kan en klasse bare ha én forekomst og gir et tilgangspunkt til den globalt.

Eg:

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

49) Hva er forskjellen mellom directcast og ctype?

DirectCast brukes til å konvertere objekttypen som krever at kjøretidstypen er den samme som den angitte typen i DirectCast.

Ctype brukes for konvertering der konverteringen er definert mellom uttrykket og typen.


50) Er C#-koden administrert eller uadministrert kode?

C# er administrert kode fordi Common language runtime kan kompilere C#-kode til mellomspråk.


51) Hva er konsollapplikasjon?

En konsollapplikasjon er en applikasjon som kan kjøres i ledeteksten i Windows. For enhver nybegynner på .Net, å bygge en konsollapplikasjon er ideelt sett det første trinnet til å begynne med.


52) Gi et eksempel på fjerning av et element fra køen

Dequeue-metoden brukes til å fjerne et element fra køen.

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

Disse intervjuspørsmålene vil også hjelpe i din viva(orals)