Top 50 C# pitanja i odgovora za intervjue (2026.)
C# Intervju Pitanja i odgovori za brucoลกe i 2/3/5/10 godina iskustva
Ovdje su pitanja i odgovori za intervjue za C# za svjeลพije, kao i kandidate s iskustvom od 5 ili 10 godina kako bi dobili posao iz snova.
1) ล to je C#?
C# je objektno orijentiran, siguran za tip i upravljani jezik koji je kompilirao .Net framework za generiranje Microsoft Srednji jezik.
๐ Besplatno preuzimanje PDF-a: C# Interview Interview Questions & Answers
2) Objasnite vrste komentara u C# s primjerima
Jedna linija
Primjer:
//This is a single line comment
ii. Viลกe redaka (/* */)
Primjer:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. XML komentari (///).
Primjer:
/// summary; /// Set error message for multilingual language. /// summary
3) Moลพe li se izvrลกiti viลกe catch blokova?
Ne, viลกestruki catch blokovi sliฤne vrste ne mogu se izvrลกiti. Nakon ลกto se izvrลกi odgovarajuฤi catch kod, kontrola se prenosi na finally blok, a zatim se izvrลกava kรดd koji slijedi nakon finally bloka.
4) Koja je razlika izmeฤu javnog, statiฤnog i nevaลพeฤeg?
Javno deklarirane varijable ili metode dostupne su bilo gdje u aplikaciji. Statiฤke deklarirane varijable ili metode globalno su dostupne bez stvaranja instance klase. Statiฤki ฤlanovi prema zadanim postavkama nisu globalno dostupni, to ovisi o vrsti modificiranog pristupa koji se koristi. Prevodilac pohranjuje adresu metode kao ulaznu toฤku i koristi te informacije za poฤetak izvrลกenja prije nego ลกto se bilo koji objekt kreira. A Void je modifikator tipa koji navodi da metoda ili varijabla ne vraฤa nikakvu vrijednost.
C# pitanja za intervju
5) ล to je objekt?
Objekt je instanca klase preko koje pristupamo metodama te klase. Kljuฤna rijeฤ "New" koristi se za stvaranje objekta. Klasa koja stvara objekt u memoriji sadrลพavat ฤe informacije o metodama, varijablama i ponaลกanju te klase.
6) Definirajte konstruktore
Konstruktor je funkcija ฤlanica u klasi koja ima isto ime kao i klasa. Konstruktor se automatski poziva kad god se kreira klasa objekta. Konstruira vrijednosti ฤlanova podataka tijekom inicijalizacije klase.
7) ล to su nazubljeni nizovi?
Niz koji ima elemente tipa array naziva se nazubljeni niz. Elementi mogu biti razliฤitih dimenzija i veliฤina. Nazubljeni niz moลพemo nazvati i nizom nizova.
8) Koja je razlika izmeฤu ref & out parametara?
Argument proslijeฤen kao ref mora se inicijalizirati prije prosljeฤivanja metodi, dok izlazni parametar ne mora biti inicijaliziran prije prosljeฤivanja metodi.
9) Koja je upotreba naredbe 'using' u C#?
Blok 'koriลกtenje' koristi se za dobivanje resursa i njegovu obradu, a zatim automatski raspolaลพe njime kada se zavrลกi izvrลกenje bloka.
10) ล to je serijalizacija?
Kada ลพelimo prenijeti objekt kroz mreลพu, tada moramo pretvoriti objekt u tok bajtova. Proces pretvaranja objekta u tok bajtova naziva se serijalizacija. Da bi se objekt mogao serijalizirati, treba implementirati suฤelje ISerialize. Deserijalizacija je obrnuti proces stvaranja objekta iz toka bajtova.
11) Moลพemo li koristiti "ovu" naredbu unutar statiฤke metode?
Ne moลพemo koristiti 'This' u statiฤkoj metodi jer moลพemo koristiti samo statiฤke varijable/metode u statiฤkoj metodi.
12) Koja je razlika izmeฤu konstanti i samo za ฤitanje?
Konstantne varijable se deklariraju i inicijaliziraju tijekom kompajliranja. Vrijednost se ne moลพe naknadno promijeniti. Samo za ฤitanje koristi se samo kada ลพelimo dodijeliti vrijednost tijekom izvoฤenja.
13) ล to je klasa suฤelja? Navedite jedan primjer toga
Suฤelje je apstraktna klasa koja ima samo javne apstraktne metode, a metode imaju samo deklaraciju, a ne definiciju. Ove apstraktne metode moraju biti implementirane u naslijeฤene klase.
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) ล to su tipovi vrijednosti i tipovi referenci?
Vrsta vrijednosti sadrลพi podatkovnu vrijednost unutar vlastitog memorijskog prostora. Primjer
int a = 30;
Referentni tip pohranjuje adresu objekta gdje se pohranjuje vrijednost. To je pokazivaฤ na drugu memorijsku lokaciju.
string b = "Hello Guru99!!";
15) ล to su prilagoฤena kontrola i korisniฤka kontrola?
Prilagoฤene kontrole su kontrole generirane kao kompilirani kod (Dlls), jednostavnije su za koriลกtenje i mogu se dodati u okvir s alatima. Programeri mogu povuฤi i ispustiti kontrole na svoje web obrasce. Atributi mogu, u vrijeme dizajna. Lako moลพemo dodati prilagoฤene kontrole u viลกe aplikacija (ako se dijele DLL-ovi). Dakle, ako su privatni, onda moลพemo kopirati u dll u bin direktorij web aplikacije, a zatim dodati referencu i moฤi ih koristiti.
Korisniฤke kontrole vrlo su sliฤne ASP ukljuฤenim datotekama i lako ih je izraditi. Korisniฤke kontrole ne mogu se smjestiti u okvir s alatima i povuฤi โ ispustiti iz njega. Imaju svoj dizajn i kod. Ekstenzija datoteke za korisniฤke kontrole je ascx.
16) ล to su zapeฤaฤene klase u C#?
Zapeฤaฤene klase stvaramo kada ลพelimo ograniฤiti nasljeฤivanje klase. Zapeฤaฤeni modifikator koji se koristi za sprjeฤavanje izvoฤenja iz klase. Ako na silu navedemo zapeฤaฤenu klasu kao osnovnu klasu, dolazi do pogreลกke tijekom kompajliranja.
17) ล to je preoptereฤenje metode?
Preoptereฤenje metoda je stvaranje viลกe metoda s istim imenom s jedinstvenim potpisima u istoj klasi. Kada kompajliramo, kompajler koristi rezoluciju preoptereฤenja kako bi odredio specifiฤnu metodu koju treba pozvati.
18) Koja je razlika izmeฤu Array i Arraylist?
U nizu moลพemo imati samo stavke istog tipa. Veliฤina niza je fiksna kada se usporeฤuje. Popis arraylist sliฤan je nizu, ali nema fiksnu veliฤinu.
19) Moลพe li se privatna virtualna metoda nadjaฤati?
Ne, jer nisu dostupni izvan razreda.
20) Opiลกite modifikator pristupaฤnosti "protected internal".
Zaลกtiฤene interne varijable/metode dostupne su unutar istog sklopa i takoฤer iz klasa koje su izvedene iz ove nadreฤene klase.
21) Koje su razlike izmeฤu klasa System.String i System.Text.StringBuilder?
System.String je nepromjenjiv. Kada promijenimo vrijednost varijable niza, tada se nova memorija dodjeljuje novoj vrijednosti i oslobaฤa se prethodna dodjela memorije. System.StringBuilder je dizajniran da ima koncept promjenjivog niza gdje se mogu izvoditi razne operacije bez dodjele zasebne memorijske lokacije za modificirani niz.
22) Koja je razlika izmeฤu System.Array.CopyTo() i System.Array.Clone()?
Koriลกtenje Clone() metodom, stvaramo novi objekt polja koji sadrลพi sve elemente u izvornom polju i koristimo CopyTo() metoda. Svi elementi postojeฤeg niza kopiraju se u drugi postojeฤi niz. Obje metode izvode plitku kopiju.
23) Kako moลพemo poredati elemente niza u silaznom redoslijedu?
Koriลกtenje Sort() metode koje slijede Reverse() metoda.
24) Zapiลกite C# sintaksu za hvatanje iznimke
Kako bismo uhvatili iznimku, koristimo try-catch blokove. Catch blok moลพe imati parametar tipa system.Exception.
npr:
try {
GetAllData();
}
catch (Exception ex) {
}
U gornjem primjeru, moลพemo izostaviti parametar iz izjave catch.
25) Koja je razlika izmeฤu suฤelja i apstraktne klase?
Suฤelja imaju sve metode koje imaju samo deklaraciju, ali ne i definiciju. U apstraktnoj klasi moลพemo imati neke konkretne metode. U klasi suฤelja sve metode su javne. Apstraktna klasa moลพe imati privatne metode.
26) Koja je razlika izmeฤu metoda Finalize() i Dispose()?
Dispose() se poziva kada ลพelimo da objekt sa sobom oslobodi sve neupravljane resurse. S druge strane, Finalize() koristi se za istu svrhu, ali ne osigurava skupljanje smeฤa objekta.
27) ล to su kruลพne reference?
Kruลพna referenca je situacija u kojoj su dva ili viลกe resursa meฤuovisni jedan o drugome, ลกto uzrokuje stanje zakljuฤavanja i ฤini resurse neupotrebljivima.
28) ล to su generici u C#.NET?
Generici se koriste za izradu klasa koda za viลกekratnu upotrebu kako bi se smanjila redundantnost koda, poveฤala sigurnost tipa i izvedba. Koristeฤi generike, moลพemo kreirati klase zbirke. Za stvaranje generiฤke zbirke, System.Collections.Generic imenski prostor trebao bi se koristiti umjesto klasa kao ลกto je ArrayList u System.Collections imenski prostor. Generici promoviraju koriลกtenje parametriziranih tipova.
29) ล to je skup objekata u .NET-u?
Skup objekata je spremnik koji sadrลพi objekte spremne za koriลกtenje. Prati objekt koji je trenutno u upotrebi, ukupan broj objekata u bazenu. Ovo smanjuje troลกkove stvaranja i ponovnog stvaranja objekata.
30) Navedite najฤeลกฤe koriลกtene vrste iznimaka u .net
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException itd.
31) ล to su prilagoฤene iznimke?
Ponekad postoje neke pogreลกke koje je potrebno rijeลกiti prema zahtjevima korisnika. Za njih se koriste prilagoฤene iznimke i koriste se definirane iznimke.
32) ล to su delegati?
Delegati su isti kao i pokazivaฤi na funkcije C++, ali jedina razlika je u tome ลกto su tipski sigurni, za razliku od pokazivaฤa na funkcije. Delegati su potrebni jer se mogu koristiti za pisanje mnogo viลกe generiฤkih funkcija sigurnih za tip.
33) Kako nasljeฤujete klasu u drugu klasu u C#?
Dvotoฤka se koristi kao operator nasljeฤivanja u C#. Samo stavite dvotoฤku, a zatim naziv klase.
public class DerivedClass : BaseClass
34) Koja je osnovna klasa u .net iz koje su sve klase izvedene?
System.Object
35) Koja je razlika izmeฤu nadjaฤavanja metode i preoptereฤenja metode?
U nadjaฤavanju metode mijenjamo definiciju metode u izvedenoj klasi koja mijenja ponaลกanje metode. Preoptereฤenje metode je stvaranje metode s istim imenom unutar iste klase koja ima razliฤite potpise.
36) Koji su razliฤiti naฤini na koje se metoda moลพe preopteretiti?
Metode se mogu preopteretiti upotrebom razliฤitih tipova podataka za parametar, razliฤitim redoslijedom parametara i razliฤitim brojem parametara.
37) Zaลกto ne moลพete odrediti modifikator pristupaฤnosti za metode unutar suฤelja?
U suฤelju imamo virtualne metode koje nemaju definiciju metode. Sve metode su tu da se nadjaฤaju u izvedenoj klasi. Zato su svi javni.
38) Kako moลพemo postaviti klasu da bude naslijeฤena, ali sprijeฤiti da se metoda nadjaฤa?
Klasu deklarirajte kao javnu i metodu uฤinite zapeฤaฤenom kako biste sprijeฤili njezino nadjaฤavanje.
39) ล to se dogaฤa ako naslijeฤena suฤelja imaju proturjeฤna imena metoda?
Implementacija ovisi o vama jer je metoda unutar vaลกe klase. Moลพe biti problema kada metode iz razliฤitih suฤelja oฤekuju razliฤite podatke, ali ลกto se prevodioca tiฤe, vi ste u redu.
40) Koja je razlika izmeฤu strukture i klase?
Strukture su varijable tipa vrijednosti, a klase su referentni tipovi. Strukture pohranjene na stogu uzrokuju dodatne troลกkove, ali brลพe dohvaฤanje. Strukture se ne mogu naslijediti.
41) Kako koristiti nullable tipove u .Netu?
Tipovi vrijednosti mogu uzeti svoje normalne vrijednosti ili nultu vrijednost. Takvi tipovi se nazivaju nullable tipovi.
Int? someID = null;
If(someID.HasVAlue)
{
}
42) Kako moลพemo stvoriti niz s vrijednostima koje nisu zadane?
Moลพemo stvoriti niz s vrijednostima koje nisu zadane pomoฤu Enumerable.Repeat.
43) Koja je razlika izmeฤu "is" i "as" operatora u c#?
Operator "is" koristi se za provjeru kompatibilnosti objekta s danim tipom i vraฤa rezultat kao Booleov.
โasโ operator se koristi za pretvaranje objekta u tip ili klasu.
44) ล to je multicast delegat?
Delegat kojem je dodijeljeno viลกe rukovatelja naziva se multicast delegat. Svaki rukovatelj je dodijeljen metodi.
45) ล to su indeksatori u C# .NET?
Indekseri su poznati kao pametni nizovi u C#. Omoguฤuje da se instance klase indeksiraju na isti naฤin kao niz.
npr:
public int this[int index] // Indexer declaration
46) Koja je razlika izmeฤu "throw" i "throw ex" u .NET-u?
Naredba "Throw" ฤuva izvorni hrp pogreลกaka, dok "throw ex" ima trag stoga od svoje toฤke bacanja. Uvijek se savjetuje koriลกtenje "baci" jer pruลพa toฤnije informacije o pogreลกci.
47) ล to su C# atributi i njihov znaฤaj?
C# pruลพa programerima naฤin da definiraju deklarativne oznake na odreฤenim entitetima, npr. Klasa, metoda itd. nazivaju se atributi. Informacije o atributu mogu se dohvatiti tijekom izvoฤenja pomoฤu Reflection-a.
48) Kako implementirati singleton dizajn obrazac u C#?
U singleton uzorku, klasa moลพe imati samo jednu instancu i globalno joj pruลพa pristupnu toฤku.
npr:
Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}
49) Koja je razlika izmeฤu directcast-a i ctype-a?
DirectCast se koristi za pretvaranje tipa objekta koji zahtijeva da tip vremena izvoฤenja bude isti kao navedeni tip u DirectCast-u.
Ctype se koristi za pretvorbu gdje je pretvorba definirana izmeฤu izraza i tipa.
50) Je li C# kod upravljani ili neupravljani kod?
C# je upravljani kod jer Common language runtime moลพe prevesti C# kod u srednji jezik.
51) ล to je konzolna aplikacija?
Konzolna aplikacija je aplikacija koja se moลพe pokrenuti u naredbenom retku Windows. Za bilo koje poฤetnik na .Netu, idealno je da je izrada konzolne aplikacije prvi korak, za poฤetak.
52) Navedite primjer uklanjanja elementa iz reda ฤekanja
Metoda dequeue koristi se za uklanjanje elementa iz reda ฤekanja.
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();
}
}
}
Ova pitanja za intervju takoฤer ฤe vam pomoฤi u vaลกem ลพivotu
