Sadržaj[Sakrij][Prikaži]
- 1. Šta je zapravo C#?
- 2. Šta razlikuje C# od C?
- 3. Šta je zapravo klasa?
- 4. Šta je zapravo objekat?
- 5. Koja je razlika između pojmova statično, javno i nevaljano?
- 6. Definirajte konstruktore.
- 7. Šta je C# u prikupljanju smeća?
- 8. Šta tačno znači struktura u C#?
- 9. Kako se C# kod kompajlira?
- 10. Jasno opišite različite C# klase.
- 11. Šta su tačno nazubljeni nizovi?
- 12. Koja je razlika između parametara out i ref?
- 13. Šta je destruktor u C#?
- 14. Šta je indekser u C#?
- 15. Koja je razlika između upravljanog i neupravljanog koda?
- 16. Opišite serijalizaciju.
- 17. U C#, kako se polja i svojstva razlikuju jedno od drugog?
- 18. Kako možete detaljno opisati korištenje naredbi u C#?
- 19. Kako biste implementirali brojne interfejse sa istim imenom metode u istoj klasi?
- 20. Koja je razlika između Task i Thread u C#?
- 21. Šta je funkcija finalize u C#?
- 22. Napravite razliku između finaliziranih blokova i finaliziranja.
- 23. Detaljno opišite C# metodu dispose.
- 24. Šta je preopterećenje C# metode? Razjasniti.
- 25. Koja je razlika između samo za čitanje i konstanti?
- 26. Šta su korisnička kontrola i prilagođena kontrola?
- 27. U C#, šta je multicast delegat?
- 28. Šta je zapravo prikupljanje objekata u C#?
- 29. Šta su zapravo generici u C#.NET-u?
- 30. Da li je moguće nadjačati privatnu virtuelnu metodu?
- 31. Razlikovati između preopterećenja metode i nadjačavanja metode u C#?
- 32. Koja je razlika između Stringa i StringBuildera u C#?
- 33. Šta su zapravo delegati?
- 34. Kada biste trebali koristiti višenitnost u C#, a kada to izbjegavati?
- 35. U C#, šta je multicast delegat?
- 36. Koja je razlika između kasnog i ranog povezivanja u C#?
- 37. Da li razlikujete Directcast i Ctype?
- 38. Kako se HashSet koristi u C#?
- 39. Objasnite grupiranje niti u C#.
- 40. Koja je razlika između ključnih riječi Const i ReadOnly u C#?
- 41. Koje detalje u vezi sa C# XSD datotekom možete dati?
- 42. Šta za vas znače svojstva Get and Set Accessor?
- 43. Šta je zapravo injekcija zavisnosti u C#?
- zaključak
C# (ranije poznat kao C oštri) je objektno orijentisani programski jezik koji programeri često koriste za obavljanje nekoliko aktivnosti i postizanje više ciljeva.
Objektno orijentisani programski jezici, kao što su C++, Python i Java, dolaze u različitim vrstama. Ovi programski jezici su dizajnirani da funkcionišu unutar određenog okvira. Slično, C# je kreiran i razvijen za specifičan okvir, naime, NET.
.NET framework je kreirao Microsoft. Pruža ogromnu platformu za razvoj aplikacija, deklaracija, instrukcija za aplikacije itd. C# se može koristiti za web razvoj, igranje igara, mobilne aplikacije, windows aplikacije i drugi slični projekti.
Sa takvim prednostima, upotreba C# je proširena, a potreba za stručnjacima koji ga mogu precizno koristiti se udvostručila. Zato što je C# tako popularan programski jezik, mnoštvo velikih i malih firmi bazira svoje proizvode na tome.
Dakle, vježbajte osnovni i napredni nivo C# pitanja da biste uspjeli na intervjuima.
1. Šta je zapravo C#?
Microsoft C# je savremen, opće namjene, objektno orijentirano programiranje jezik. C# je namenjen infrastrukturi zajedničkog jezika (CLI), koja se sastoji od izvršnog koda i okruženja za izvršavanje koje omogućava upotrebu brojnih jezika visokog nivoa na različitim računarskim sistemima i arhitekturama.
2. Šta razlikuje C# od C?
C je obično poznat kao proceduralni jezik, dok je C# više objektno orijentisan. Glavna razlika je u tome što C# dozvoljava automatizovano sakupljanje smeća putem Common Language Runtime (CLR), dok C to ne čini. C# zahtijeva .NET framework za pokretanje, dok je C jezik nezavisan od platforme.
3. Šta je zapravo klasa?
Klasa služi kao šablon za izgradnju objekata. Uz tehnike, ima atribute. Iz jedne klase možemo proizvesti nekoliko instanci objekta.
4. Šta je zapravo objekat?
Instanca klase poznata kao objekat je način na koji pristupamo funkcionalnostima klase. Za konstruiranje objekta možemo koristiti ključnu riječ “new”. Pohranjuju se funkcije, članovi podataka i ponašanje klase koja proizvodi objekt u memoriji.
5. Koja je razlika između pojmova statično, javno i nevaljano?
Bilo gdje u programu može pristupiti javno definiranim varijablama. Statičkim varijablama se može pristupiti globalno bez potrebe za pravljenjem instance klase. U C#, modifikator tipa koji se zove Void se koristi za označavanje tipa povratka metode.
6. Definirajte konstruktore.
Konstruktor je funkcija člana specifična za klasu. Kada se formira objekat, konstruktor se poziva automatski. Klasa konstruiše sve vrijednosti članova podataka kako je inicijalizirana.
7. Šta je C# u prikupljanju smeća?
Proces čišćenja memorije koja je zauzeta neželjenim stavkama poznat je kao sakupljanje smeća. Određena količina memorije se automatski dodjeljuje objektu klase kada se kreira u memoriji hrpe. Sada kada ste završili sa radom na stavci, memorijski prostor koji je ranije zauzimao je izgubljen. Memorija se mora osloboditi.
8. Šta tačno znači struktura u C#?
U C#, struktura je tip podataka koji se sastoji od brojnih tipova podataka, kao što su metode, polja, konstruktori, konstante, svojstva, indekseri, operatori, pa čak i druge strukture. Struktura pomaže u konsolidaciji mnogih vrsta podataka u jednu jedinicu. Na ovaj način su analogni kursevima. Strukture su tipovi vrijednosti, dok su klase referentni tipovi.
9. Kako se C# kod kompajlira?
Kada je projekat kreiran, C# izvorni kod se kompajlira u Intermediate Language (IL). IL je zbirka instrukcija koja generiše mašinski kod za izvršenje na mašinskom procesoru. Kod se šalje od pretprocesora do kompajlera, zatim asembleru i na kraju linkeru u četiri faze.
10. Jasno opišite različite C# klase.
- Statička: To je vrsta klase koja se ne može instancirati, stoga ne možemo koristiti ključnu riječ new da napravimo objekt od nje, ali možemo pozvati članove klase direktno koristeći njihovo ime klase.
- Apstrakt: Za definiranje apstraktnih klasa koristite ključnu riječ abstract. Za apstraktne klase ne mogu se kreirati objekti. Mora biti naslijeđen u podklasi ako želite da ga koristite. Jednostavne definicije apstraktnih i neapstraktnih metoda su dozvoljene unutar apstraktne klase.
- Delimično: Ova klasa vam omogućava da odvojite svoja svojstva, metode i događaje u nekoliko izvornih datoteka, koje se zatim kombinuju u jednu klasu u vreme izrade.
- Zapečaćena: Zapečaćena klasa ne može se naslijediti od druge klase i ima ograničene karakteristike. Modifikatori pristupa ne mogu se dodati zapečaćenoj klasi.
11. Šta su tačno nazubljeni nizovi?
Niz sa elementima niza naziva se nazubljenim nizom. Elementi nazubljenih nizova mogu biti različitih oblika i veličina.
12. Koja je razlika između parametara out i ref?
Prilikom davanja argumenta kao ref, parametar se mora inicijalizirati prije nego što bude proslijeđen metodi. Izlazni parametar, s druge strane, ne mora biti inicijaliziran prije nego što se dostavi metodi.
13. Šta je destruktor u C#?
Destruktor je vrsta metode u C# koja je dio klase. Primarna funkcija destruktora je da izbriše instance klase kada više nisu potrebne kako bi se oslobodila memorija. Destruktori su ponekad poznati kao finalizatori.
14. Šta je indekser u C#?
Indekseri se koriste u C# za pronalaženje instanci klase ili strukture. Indeksiranim vrijednostima se stoga može pristupiti slično nizu, ali bez potrebe eksplicitnog deklariranja tipa ili člana instance.
15. Koja je razlika između upravljanog i neupravljanog koda?
Upravljani kod vam omogućava da pokrenete kod u .NET frameworku na upravljanom CLR okruženju.
Kontrolirani kod se izvršava u upravljanom okruženju izvršavanja, a ne u operativnom sistemu. Pruža razne usluge kao što su sakupljač smeća, rukovanje izuzetcima i tako dalje.
Neupravljani kod je kod koji se ne izvršava na CLR-u i radi izvan .NET okvira. Oni ne pružaju jezičke usluge visokog nivoa i stoga rade bez njih. C++ je jedan takav primjer.
16. Opišite serijalizaciju.
Iz stavke se mora kreirati tok bajtova da bi se prenio preko mreže. Serijalizacija je čin transformacije stavke u tok bajtova. Interfejs za serijalizaciju mora biti implementiran da bi se stavka mogla serijalizirati. Suprotnost konstruisanju objekta iz niza bajtova naziva se deserijalizacija.
17. U C#, kako se polja i svojstva razlikuju jedno od drugog?
Polje je član klase ili objekat bilo koje vrste koji služi kao lokacija za pohranjivanje podataka, dok je svojstvo član klase koji nudi metodu za čitanje, pisanje i izračunavanje vrijednosti privatnog polja.
18. Kako možete detaljno opisati korištenje naredbi u C#?
Naredba using se koristi za ograničavanje korištenja jednog ili više resursa unutar aplikacije. Resursi se troše i oslobađaju na konstantnoj osnovi.
Primarni zadatak ove izjave je upravljanje neželjenim resursima i njihovo automatsko oslobađanje. Jednom kada se formira objekt koji koristi resurs, uvjerite se da je funkcija dispose objekta pozvana da oslobodi resurse potrebne tom objektu; evo gdje korištenje iskaza dobro dolazi.
19. Kako biste implementirali brojne interfejse sa istim imenom metode u istoj klasi?
Da biste implementirali nekoliko sučelja s istim imenom metode, izbjegavajte njihovu implementaciju unutar tijela funkcije. Umjesto toga, naveli biste ime sučelja direktno u tijelu metode. Kompajler će prepoznati na koje metode interfejsa se upućuje, rješavajući problem.
20. Koja je razlika između Task i Thread u C#?
Nit je prava nit operativnog sistema sa sopstvenim resursima steka i kernela. Nit pruža najveću kontrolu. Nit vam omogućava da Prekinete (), Suspend () ili Nastavi (). Status niti se može posmatrati ili se mogu postaviti njeni atributi, kao što su veličina steka, stanje stana i kultura. CLR čuva skup niti umotanih u ThreadPool.
Paralelna biblioteka zadataka ima klasu pod nazivom Task. Za razliku od ThreadPool-a, Zadatak nema svoju nit operativnog sistema. Zadatke izvršava TaskScheduler, iako podrazumevani planer izvršava ThreadPool. Moguće je biti obaviješten kada se zadatak završi i dobiti rezultat.
21. Šta je funkcija finalize u C#?
Klasa objekta koja se koristi za akcije čišćenja definira funkciju finalize (). Kada se referenca na objekat ne koristi tokom dužeg vremenskog perioda, sakupljač smeća će često pozvati ovu funkciju.
Sakupljač smeća automatski oslobađa kontrolirane resurse, ali ako želite osloboditi nepotrebne resurse kao što su ručke datoteka, veze podataka i tako dalje, morate eksplicitno implementirati funkciju finalizacije.
22. Napravite razliku između finaliziranih blokova i finaliziranja.
Završeni blok se poziva nakon što su blokovi pokušaja i hvatanja dovršeni jer je potreban za rukovanje izuzetkom. Blok koda se izvršava bez obzira da li je izuzetak uhvaćen. Kod bloka je generalno čišći.
Metoda finalize se poziva neposredno prije prikupljanja smeća. Glavne odgovornosti finalizirane metode su da očisti neupravljani kod, koji se automatski pokreće svaki put kada se instanca ne pozove.
23. Detaljno opišite C# metodu dispose.
Disposeof() funkcija oslobađa neiskorištene resurse objekta. Neiskorišteni resursi, kao što su datoteke, podatkovne veze i tako dalje. Ova funkcija je specificirana u interfejsu IDisposable, koji je implementiran od strane klase deklarisanjem tijela IDisposable interfejsa.
Funkcija dispose se ne poziva automatski; programer ga mora implementirati ručno za efikasno korištenje resursa.
24. Šta je preopterećenje C# metode? Razjasniti.
Preopterećenje metoda je tipičan pristup u C# koji se koristi za konstruiranje brojnih metoda s istim imenom i specificiranim potpisima. Ovaj postupak se ponavlja sa istom klasom.
Kada je procedura preopterećenja metode završena, kompajler započinje operacije za pozivanje određenih akcija na osnovu preopterećenja metode.
25. Koja je razlika između samo za čitanje i konstanti?
Konstantne varijable se deklarišu i inicijalizuju tokom kompilacije. Nakon toga, ova vrijednost se ne može mijenjati. S druge strane, koristi se samo za čitanje kada je vrijednost dodijeljena u vrijeme izvođenja.
26. Šta su korisnička kontrola i prilagođena kontrola?
Prevedeni kod se koristi za razvoj prilagođenih kontrola. Oni mogu biti uključeni u kutiju s alatima i jednostavni su za korištenje. Povlačenjem i ispuštanjem ovih kontrola, programeri ih mogu uključiti u svoje web obrasce.
Korisničke kontrole i datoteke uključene u ASP su prilično slične. Takođe su jednostavne za pravljenje. Korisničke kontrole, s druge strane, ne mogu se dodati u alatni okvir. Takođe se ne mogu izvući i ispustiti iz njega.
27. U C#, šta je multicast delegat?
Multicast delegat održava reference ili adrese na nekoliko funkcija u isto vrijeme. Kada pozovemo multicast delegata, on će također pozvati sve druge funkcije na koje se odnosi. Da biste pozvali nekoliko metoda, koristite potpis cijele metode, baš kao i delegat. kao primjer:
28. Šta je zapravo prikupljanje objekata u C#?
Objedinjavanje objekata je tehnika dizajna u softveru koja reciklira stvari umjesto da ih ponovo gradi. To postiže tako što pohranjuje odabrane stavke u skup i stavlja ih na raspolaganje za korištenje kada ih aplikacija zatraži. Ova procedura poboljšava performanse smanjujući generiranje nepotrebnih objekata.
29. Šta su zapravo generici u C#.NET-u?
Generici se koriste za kreiranje višekratnih klasa koda kako bi se smanjila redundantnost koda, poboljšala sigurnost tipova i poboljšala brzina. Možemo konstruisati klase kolekcije sa genericima.
U sistemu bi se trebao koristiti generički prostor imena umjesto klasa kao što je ArrayList. Imenski prostor za kolekcije. Generici ohrabruju upotrebu parametrizovanih tipova.
30. Da li je moguće nadjačati privatnu virtuelnu metodu?
Privatna virtuelna metoda ne može se nadjačati jer je privatna za klasu i ne može joj se pristupiti izvan nje.
31. Razlikovati između preopterećenja metode i nadjačavanja metode u C#?
Nadjačavanje metode je proces izmjene osnovne definicije izvedene klase. Metode izvedene klase na kraju se ponašaju drugačije kao rezultat ove strategije.
Preopterećenje metoda, s druge strane, može se opisati kao čin generiranja mnogih metoda sa istim imenom, ali različitim potpisima pod istom klasom.
32. Koja je razlika između Stringa i StringBuildera u C#?
Objekt string je nepromjenjiv, što znači da se ne može mijenjati nakon što je kreiran. Svaki pokušaj promjene string objekta će rezultirati stvaranjem novog string objekta.
S druge strane, objekat za izgradnju nizova je savitljiv i može se mijenjati kako programer smatra prikladnim.
33. Šta su zapravo delegati?
U C++, delegati su u osnovi isti kao pokazivači funkcija. Jedina razlika između njih je ta što su delegati sigurni za tip, dok pokazivači funkcija nisu. Delegati su neophodni jer omogućavaju konstrukciju generičkih tipova sigurnih funkcija.
34. Kada biste trebali koristiti višenitnost u C#, a kada to izbjegavati?
Multithreading, često poznat kao threading, je efikasan pristup za povećanje brzine programa u kojem se brojne aktivnosti izvršavaju istovremeno. Omogućuje različitim nitima da se izvršavaju nezavisno, umjesto da čekaju da se prethodni korak završi. Ovo ima mogućnost da poveća tempo programa.
Međutim, kada je nekoliko procesa programa međusobno povezano, višenitnost se ne preporučuje. Na primjer, ako je korak B ovisio o tome da se prvi završi korak A, višenitnost bi izazvala probleme s performansama i softverske nedostatke. Threading postaje sve osjetljiviji kako se program razvija u složenosti.
35. U C#, šta je multicast delegat?
Multicast delegat u C#, za razliku od osnovnog delegata, odnosi se na brojne ciljne metode. Kada se koristi multicast delegat, pozivaju se sve funkcije na koje je delegat ukazao. Implementiraju se uz pomoć sistemske klase MulticastDelegate.
36. Koja je razlika između kasnog i ranog povezivanja u C#?
- Rano uvezivanje se odvija u vrijeme kompajliranja, dok se kasno uvezivanje odvija tokom vremena izvođenja.
- Kasno vezivanje je često sporije od ranog jer se javlja u toku izvršavanja.
- Za razliku od kasnog povezivanja, koje koristi objekt za rješavanje poziva metoda, rano povezivanje rješava pozive metoda koristeći informacije o klasi.
37. Da li razlikujete Directcast i Ctype?
Vrsta objekta koja zahtijeva da tip vremena izvršavanja odgovara specificiranom tipu u DirectCast-u se konvertuje pomoću DirectCast-a.
Kada se specificira konverzija između izraza i tipa, koristi se Ctype.
38. Kako se HashSet koristi u C#?
U C#, HashSet je neuređena kolekcija različitih vrijednosti. Općenito, koristi se da spriječi umetanje duplikata u kolekciju i radi bolje od liste u ovom zadatku.
Za implementaciju se koristi klasa HashSet, koja je potomak sistema.
39. Objasnite grupiranje niti u C#.
U C#, skup niti je kolekcija niti. Ove niti se koriste za obavljanje zadataka bez ometanja funkcionalnosti primarne niti. Nit u spremištu niti se vraća u spremište niti kada završi s radom.
Klasa System sadrži klase koje rukuju niti u spremištu niti i njenim akcijama. Threading. ThreadPool je imenski prostor.
40. Koja je razlika između ključnih riječi Const i ReadOnly u C#?
- ReadOnly ne može biti deklarisan unutar metode, dok Const može.
- Const je konstanta vremena kompajliranja, dok je ReadOnly konstanta vremena izvođenja.
- Vrijednosti samo za čitanje mogu se mijenjati, ali Const vrijednosti ne mogu.
41. Koje detalje u vezi sa C# XSD datotekom možete dati?
XSD je skraćenica od XML Schema Definition. Ako nijedna XSD datoteka nije povezana sa XML datotekom, ona može imati bilo koje atribute, elemente i oznake. XSD datoteka pruža okvir za XML datoteku, određujući koje komponente i atributi trebaju biti prisutni u XML datoteci, kao i njihov redoslijed.
42. Šta za vas znače svojstva Get and Set Accessor?
U C#, Get i Set se nazivaju pristupnici jer su napravljeni pomoću svojstava. Svojstvo dozvoljava čitanje i pisanje vrijednosti privatnog polja. Takvim privatnim poljima se pristupa preko pristupnika.
Dok se svojstvo Get koristi za vraćanje vrijednosti svojstva, svojstvo Set se koristi za postavljanje vrijednosti.
43. Šta je zapravo injekcija zavisnosti u C#?
Injekcija zavisnosti (DI) je tehnika dizajna u C# koja se koristi za kreiranje labavo povezanog programiranja. Ova procedura prenosi kreiranje i povezivanje zavisnih objekata izvan klase na koju se oslanjaju. Glavni cilj je učiniti buduće modifikacije koda lakšim za upravljanje.
zaključak
C# je primarni programski jezik koji se koristi u svim programskim jezicima višeg nivoa. C# programeri su u velikoj potražnji i mogu pronaći atraktivne izglede za karijeru u industrijama kao što su front-end razvoj, back-end programiranje i razvoj aplikacija. A pošto ga Microsoft podržava, popularnost C# će samo rasti.
Gore navedena su najvažnija pitanja za C# intervju za iskusne profesionalce i početnike. Vidi Hashdork's Interview Series za pomoć u pripremi intervjua.
Ostavite odgovor