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.

Objekt u C#

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

Saลพmite ovu objavu uz: