50 parimat C# intervjuu küsimust ja vastust (2026)
C# intervjuu küsimused ja vastused esmakursuslastele ja 2/3/5/10-aastasele kogemusele
Siin on C# intervjuu küsimused ja vastused nii värskematele kui ka 5 või 10 aasta kogemustega kandidaatidele, et saada oma unistuste töökoht.
1) Mis on C#?
C# on objektorienteeritud, tüübikindel ja hallatav keel, mille loomiseks koostab .Neti raamistik. Microsoft Vahekeel.
👉 Tasuta PDF-i allalaadimine: C#-intervjuu intervjuu küsimused ja vastused
2) Selgitage kommentaaride tüüpe C# näidetega
Üks rida
Näide:
//This is a single line comment
ii. Mitu rida (/* */)
Näide:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. XML-kommentaarid (///).
Näide:
/// summary; /// Set error message for multilingual language. /// summary
3) Kas saab käivitada mitu püüdmisplokki?
Ei, mitut sarnast tüüpi püüdmisplokki ei saa käivitada. Kui õige püüdmiskood on käivitatud, kantakse juhtelement lõplikule plokile ja seejärel käivitatakse lõplikule plokile järgnev kood.
4) Mis vahe on avalikul, staatilisel ja tühisel?
Avalikult deklareeritud muutujad või meetodid on rakenduses kõikjal juurdepääsetavad. Staatilised deklareeritud muutujad või meetodid on globaalselt juurdepääsetavad ilma klassi eksemplari loomata. Staatilised liikmed ei ole vaikimisi globaalselt juurdepääsetavad, see sõltub muudetud juurdepääsu tüübist. Kompilaator salvestab meetodi aadressi sisestuspunktina ja kasutab seda teavet täitmise alustamiseks enne objektide loomist. Ja Void on tüübi modifikaator, mis ütleb, et meetod või muutuja ei tagasta väärtust.
C# intervjuu küsimused
5) Mis on objekt?
Objekt on klassi eksemplar, mille kaudu pääseme juurde selle klassi meetoditele. Objekti loomiseks kasutatakse märksõna "uus". Klass, mis loob objekti mällu, sisaldab teavet selle klassi meetodite, muutujate ja käitumise kohta.
6) Määratlege konstruktorid
Konstruktor on klassi liigefunktsioon, millel on klassiga sama nimi. Konstruktor kutsutakse automaatselt välja alati, kui luuakse objektiklass. See loob andmeliikmete väärtused klassi lähtestamise ajal.
7) Mis on sakilised massiivid?
Massiivi, millel on massiivi tüüpi elemente, nimetatakse sakiliseks massiiviks. Elemendid võivad olla erineva mõõtme ja suurusega. Saaklist massiivi võime nimetada ka massiivi massiiviks.
8) Mis vahe on ref & out parameetritel?
Viitena edastatud argument tuleb enne meetodile üleminekut initsialiseerida, samas kui out-parameetrit ei pea enne meetodile üleandmist initsialiseerima.
9) Mis kasu on C#-s lausest "kasutamine"?
Kasutamise plokki kasutatakse ressursi hankimiseks ja selle töötlemiseks ning seejärel automaatselt kõrvaldamiseks, kui ploki täitmine on lõppenud.
10) Mis on serialiseerimine?
Kui tahame objekti võrgu kaudu transportida, peame selle teisendama baitide vooks. Objekti teisendamist baitide vooks nimetatakse jadamiseks. Selleks, et objekt oleks serialiseeritav, peaks see rakendama ISerialize Interface'i. Deserialiseerimine on baitide voost objekti loomise vastupidine protsess.
11) Kas me saame kasutada "seda" käsku staatilises meetodis?
Me ei saa seda staatilises meetodis kasutada, sest staatilises meetodis saame kasutada ainult staatilisi muutujaid/meetodeid.
12) Mis vahe on konstantide ja kirjutuskaitstud vahel?
Konstantsed muutujad deklareeritakse ja initsialiseeritakse kompileerimise ajal. Väärtust ei saa hiljem muuta. Kirjutuskaitstud kasutatakse ainult siis, kui tahame väärtust käitamisajal määrata.
13) Mis on liideseklass? Too üks näide sellest
Liides on abstract-klass, kus on ainult avalikud kõhulihasedtract-meetodid ja meetoditel on ainult deklaratsioon, mitte definitsioon. Need abstract-meetodid tuleb rakendada päritud klassides.
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) Mis on väärtustüübid ja viitetüübid?
Väärtuse tüüp hoiab andmeväärtust oma mäluruumis. Näide
int a = 30;
Viitetüüp salvestab selle objekti aadressi, kuhu väärtust salvestatakse. See on osuti teisele mälukohale.
string b = "Hello Guru99!!";
15) Mis on kohandatud juhtimine ja kasutajakontroll?
Kohandatud juhtelemendid on kompileeritud koodina (DLL-na) loodud juhtelemendid, mida on lihtsam kasutada ja neid saab tööriistakasti lisada. Arendajad saavad juhtelemente oma veebivormidele pukseerida. Atribuudid võivad kavandamise ajal. Saame hõlpsasti lisada kohandatud juhtelemente mitmele rakendusele (jagatud dll-idele). Niisiis, kui need on privaatsed, saame kopeerida dll-i veebirakenduse bin-kataloogi ja seejärel lisada viite ja neid kasutada.
Kasutaja juhtelemendid on väga sarnased ASP-failidega ja neid on lihtne luua. Kasutaja juhtelemente ei saa tööriistakasti asetada ja sealt lohistada – sealt maha tõmmata. Neil on oma disain ja kood taga. Kasutaja juhtelementide faililaiend on ascx.
16) Mis on suletud klassid C# keeles?
Loome suletud klassid, kui soovime piirata klassi pärimist. Suletud modifikaator, mida kasutatakse klassist tuletamise vältimiseks. Kui määrame jõuliselt suletud klassi baasklassiks, tekib kompileerimisaja viga.
17) Mis on meetodi ülekoormus?
Meetodi ülekoormamine on mitme meetodi loomine sama nimega ja samas klassis ainulaadsete signatuuridega. Kui me kompileerime, kasutab kompilaator ülekoormuse eraldusvõimet, et määrata konkreetne käivitatav meetod.
18) Mis vahe on Array ja Arraylist vahel?
Massiivis võivad meil olla ainult sama tüüpi üksused. Võrreldes on massiivi suurus fikseeritud. Massiiviloend on sarnane massiiviga, kuid sellel pole kindlat suurust.
19) Kas privaatset virtuaalset meetodit saab tühistada?
Ei, sest neile ei pääse väljaspool klassi.
20) Kirjeldage juurdepääsetavuse modifikaatorit "kaitstud sisemine".
Kaitstud sisemised muutujad/meetodid on kättesaadavad samas koostis ja ka klassidest, mis on tuletatud sellest vanemklassist.
21) Mille poolest erinevad System.String ja System.Text.StringBuilder klassid?
System.String on muutumatu. Kui muudame stringimuutuja väärtust, eraldatakse uuele väärtusele uus mälu ja eelmine mälujaotus vabastatakse. System.StringBuilder loodi nii, et sellel oleks muutuva stringi kontseptsioon, kus saab sooritada mitmesuguseid toiminguid ilma muudetud stringile eraldi mälukohta eraldamata.
22) Mis vahe on System.Array.CopyTo() ja System.Array.Clone() vahel?
Kasutamine Clone() meetodil loome uue massiiviobjekti, mis sisaldab kõiki algses massiivi elemente ja kasutab CopyTo() meetod. Kõik olemasoleva massiivi elemendid kopeeritakse teise olemasolevasse massiivi. Mõlemad meetodid teevad madala koopia.
23) Kuidas sorteerida massiivi elemente kahanevas järjekorras?
Kasutamine Sort() meetodid, millele järgneb Reverse() meetod.
24) Kirjutage üles C# süntaks, et tabada erand
Erandi tabamiseks kasutame try-catch plokke. Püügiploki parameeter võib olla süsteem.Erandi tüüp.
Näiteks:
try {
GetAllData();
}
catch (Exception ex) {
}
Ülaltoodud näites võime parameetri püüdmislausest välja jätta.
25) Mis vahe on liidesel ja abs-lihaslihasel?tract-klass?
Liideste meetoditel on ainult deklaratsioon, aga mitte definitsioon. Abstraktsestract-klassis võivad meil olla mõned konkreetsed meetodid. Liideseklassis on kõik meetodid avalikud. Abs-klassistract-klassil võivad olla privaatsed meetodid.
26) Mis vahe on meetoditel Finalize() ja Dispose()?
Dispose() kutsutakse välja siis, kui soovime, et objekt vabastaks koos nendega kõik haldamata ressursid. Teisest küljest Finalize() kasutatakse samal eesmärgil, kuid see ei taga objekti prügi kogumist.
27) Mis on ringviited?
Ringviide on olukord, kus kaks või enam ressurssi on üksteisest sõltuvad, põhjustab lukustuse ja muudab ressursid kasutuskõlbmatuks.
28) Mis on C#.NETis geneerilised ravimid?
Geneerikat kasutatakse korduvkasutatavate koodiklasside loomiseks, et vähendada koodi liiasust, suurendada tüübi turvalisust ja jõudlust. Geneeriliste ravimite abil saame luua kogumisklasse. Üldise kogu loomiseks tuleks System.Collections nimeruumi klasside (nt ArrayList) asemel kasutada nimeruumi System.Collections.Generic. Generics soodustab parameetritega tüüpide kasutamist.
29) Mis on .NET-i objektide kogum?
Objektikogum on konteiner, mis sisaldab kasutusvalmis objekte. tracNäitab hetkel kasutusel olevat objekti ja basseinis olevate objektide koguarvu. See vähendab objektide loomise ja uuesti loomisega seotud üldkulu.
30) Loetlege .net-is sagedamini kasutatavad erandite tüübid
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException,OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException jne.
31) Mis on kohandatud erandid?
Mõnikord on mõned vead, mida tuleb vastavalt kasutaja nõudmistele käsitleda. Nende jaoks kasutatakse kohandatud erandeid ja neid kasutatakse määratletud eranditena.
32) Mis on delegaadid?
Delegaadid on samad kui funktsiooniosutajad C++, kuid ainus erinevus on see, et erinevalt funktsiooniosutitest on need tüübikindlad. Delegaadid on vajalikud, kuna neid saab kasutada palju üldisemate tüübikindlate funktsioonide kirjutamiseks.
33) Kuidas pärida klass C#-s teise klassi?
Käärsoole kasutatakse pärimisoperaatorina C#-s. Sisestage lihtsalt koolon ja seejärel klassi nimi.
public class DerivedClass : BaseClass
34) Mis on .net põhiklass, millest kõik klassid on tuletatud?
System.Object
35) Mis vahe on meetodi alistamise ja meetodi ülekoormamise vahel?
Meetodi alistamise korral muudame tuletatud klassis meetodi definitsiooni, mis muudab meetodi käitumist. Meetodi ülekoormus on sama nimega meetodi loomine samas klassis, millel on erinevad signatuurid.
36) Milliseid erinevaid viise saab meetodit üle koormata?
Meetodeid saab üle koormata, kasutades parameetri jaoks erinevaid andmetüüpe, erinevat parameetrite järjekorda ja erinevat arvu parameetreid.
37) Miks te ei saa määrata liidesesiseste meetodite juurdepääsetavuse modifikaatorit?
Liideses on meil virtuaalsed meetodid, millel pole meetodi määratlust. Kõik meetodid on tuletatud klassis alistamiseks. Seetõttu on nad kõik avalikud.
38) Kuidas saab määrata klassi päritavaks, kuid vältida meetodi ületamist?
Kuulutage klass avalikuks ja sulgege meetod, et vältida selle ülekirjutamist.
39) Mis juhtub, kui päritud liidestel on vastuolulised meetodite nimed?
Rakendamine on teie otsustada, kuna meetod on teie enda klassi sees. Kui erinevate liideste meetodid eeldavad erinevaid andmeid, võib tekkida probleem, kuid kompilaatori jaoks on kõik korras.
40) Mis vahe on struktuuril ja klassil?
Struktuurid on väärtustüüpi muutujad ja klassid on viitetüübid – see eristus tuleb sageli ette OOPS-i intervjuuküsimusedStackis talletatud struktuurid põhjustavad lisakoormust, kuid kiiremat otsingut ja struktuure ei saa pärida.
41) Kuidas kasutada nullitavaid tüüpe .Netis?
Väärtuse tüübid võivad võtta kas nende normaalväärtused või nullväärtused. Selliseid tüüpe nimetatakse nullitavateks tüüpideks.
Int? someID = null;
If(someID.HasVAlue)
{
}
42) Kuidas saame luua massiivi mittevaikeväärtustega?
Saame luua mittevaikeväärtustega massiivi, kasutades funktsiooni Enumerable.Repeat.
43) Mis vahe on c# operaatoritel "is" ja "as"?
Operaatorit “is” kasutatakse objekti ühilduvuse kontrollimiseks antud tüübiga ja see tagastab tulemuse Booleanina.
Operaatorit “as” kasutatakse objekti tüübi või klassi valamiseks.
44) Mis on multisaate delegaat?
Delegaati, kellele on määratud mitu töötlejat, nimetatakse multiedastuse delegaadiks. Igale töötlejale määratakse meetod.
45) Mis on C# .NET-i indekseerijad?
Indekseerijaid tuntakse nutikatena massiivid C# keeles. See võimaldab klassi eksemplare indekseerida samamoodi nagu massiivi.
Näiteks:
public int this[int index] // Indexer declaration
46) Mis vahe on "viska" ja "viska ex" .NET-is?
„Throw” lause säilitab algse veavirna, samas kui „throw ex” omab virna trace nende viskepunktist. Alati on soovitatav kasutada sõna „viska“, kuna see annab täpsemat veateavet.
47) Mis on C# atribuudid ja selle tähendus?
C# pakub arendajatele võimalust määratleda teatud olemitel deklaratiivseid silte, nt. Klassi, meetodit jne nimetatakse atribuutideks. Atribuudi teavet saab käivitamise ajal hankida kasutades Reflection.
48) Kuidas rakendada üksikut disainimustrit C#-s?
Üksiku mustri korral saab klassil olla ainult üks eksemplar ja see annab sellele globaalse pääsupunkti.
Näiteks:
Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}
49) Mis vahe on otseedastuse ja ctype vahel?
DirectCasti kasutatakse selle objekti tüübi teisendamiseks, mille käitusaja tüüp peab olema sama, mis DirectCastis määratud tüüp.
Ctype kasutatakse teisendamiseks, kui teisendus on määratletud avaldise ja tüübi vahel.
50) Kas C#-kood on hallatud või haldamata kood?
C# on hallatav kood, kuna ühiskeele käitusaeg suudab kompileerida C#-koodi vahekeeleks.
51) Mis on konsoolirakendus?
Konsoolirakendus on rakendus, mida saab käivitada käsurealt Windows. Igasuguse jaoks algaja .Netis, on konsoolirakenduse loomine ideaaljuhul esimene samm.
52) Too näide elemendi järjekorrast eemaldamisest
Järjekorrast vabastamise meetodit kasutatakse elemendi eemaldamiseks järjekorrast.
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();
}
}
}
Need C# ja seotud WPF-i intervjuuküsimused aitab ka teie viva (suukaudsete ravimite) puhul.
