Kazalo[Skrij][Pokaži]
- 1. Kaj točno je C#?
- 2. Kaj razlikuje C# od C?
- 3. Kaj pravzaprav je razred?
- 4. Kaj pravzaprav je predmet?
- 5. Kakšna je razlika med izrazi statično, javno in nično?
- 6. Definirajte konstruktorje.
- 7. Kaj je C# pri zbiranju smeti?
- 8. Kaj natančno pomeni struktura v C#?
- 9. Kako se koda C# prevede?
- 10. Jasno opišite različne razrede C#.
- 11. Kaj pravzaprav so nazobčani nizi?
- 12. Kakšna je razlika med parametroma out in ref?
- 13. Kaj je destruktor v C#?
- 14. Kaj je indekser v C#?
- 15. Kakšna je razlika med upravljano in neupravljano kodo?
- 16. Opišite serializacijo.
- 17. Kako se polja in lastnosti v C# razlikujejo med seboj?
- 18. Kako lahko podrobno opišete uporabo stavkov v C#?
- 19. Kako bi implementirali številne vmesnike z istim imenom metode v istem razredu?
- 20. Kakšna je razlika med opravilom in nitjo v C#?
- 21. Kaj je funkcija finalize v C#?
- 22. Razlikujte med finaliziranimi bloki in finaliziranjem.
- 23. Podrobno opišite metodo C# dispose of.
- 24. Kaj je preobremenitev metode C#? Razjasniti.
- 25. Kakšna je razlika med samo za branje in konstantami?
- 26. Kaj sta uporabniški nadzor in nadzor po meri?
- 27. Kaj je multicast delegat v C#?
- 28. Kaj točno je združevanje objektov v C#?
- 29. Kaj točno so generiki v C#.NET?
- 30. Ali je izvedljivo preglasiti zasebno virtualno metodo?
- 31. Razlikujete med preobremenitvijo metode in preglasitvijo metode v C#?
- 32. Kakšna je razlika med String in StringBuilderjem v C#?
- 33. Kaj pravzaprav so delegati?
- 34. Kdaj morate uporabiti večnitnost v C# in kdaj se ji morate izogniti?
- 35. Kaj je multicast delegat v C#?
- 36. Kakšna je razlika med poznim in zgodnjim vezanjem v C#?
- 37. Razlikujete med Directcastom in Ctype?
- 38. Kako se HashSet uporablja v C#?
- 39. Prosimo, razložite združevanje niti v C#.
- 40. Kakšna je razlika med ključnima besedama Const in ReadOnly v C#?
- 41. Katere podrobnosti o datoteki C# XSD lahko navedete?
- 42. Kaj vam pomenijo lastnosti dostopnika Get and Set?
- 43. Kaj točno je vbrizgavanje odvisnosti v C#?
- zaključek
C# (prej znan kot C sharp) je objektno usmerjen programski jezik, ki ga razvijalci pogosto uporabljajo za izvajanje več dejavnosti in doseganje več ciljev.
Objektno usmerjeni programski jeziki, kot so C++, Python in Java, so na voljo v različnih okusih. Ti programski jeziki so zasnovani tako, da delujejo znotraj določenega okvira. Podobno je C# ustvarjen in razvit za specifično ogrodje, in sicer NET.
Ogrodje .NET je ustvaril Microsoft. Zagotavlja obsežno platformo za razvoj aplikacij, deklaracij, navodil za aplikacije itd. C# se lahko uporablja za spletni razvoj, igranje iger, mobilne aplikacije, Windows aplikacije in drugi podobni projekti.
S takšnimi prednostmi se je uporaba C# razširila, potreba po strokovnjakih, ki ga lahko natančno uporabljajo, pa se je podvojila. Ker je C# tako priljubljen programski jezik, množica velikih in malih podjetij temelji svoje izdelke na njej.
Zato vadite osnovna in napredna vprašanja C#, da boste uspešno opravili intervjuje.
1. Kaj točno je C#?
Microsoft C# je sodoben, splošnonamenski, objektno usmerjeno programiranje jezik. C# je namenjen skupni jezikovni infrastrukturi (CLI), ki obsega izvršljivo kodo in izvajalno okolje, ki omogoča uporabo številnih jezikov na visoki ravni v različnih računalniških sistemih in arhitekturah.
2. Kaj razlikuje C# od C?
C je običajno znan kot proceduralni jezik, medtem ko je C# bolj objektno usmerjen. Glavna razlika je v tem, da C# omogoča samodejno zbiranje smeti prek Common Language Runtime (CLR), medtem ko C ne omogoča. C# za delovanje zahteva ogrodje .NET, medtem ko je C od platforme neodvisen jezik.
3. Kaj pravzaprav je razred?
Razred služi kot predloga za gradnjo objektov. Poleg tehnik ima atribute. Iz enega razreda lahko izdelamo več primerkov predmeta.
4. Kaj pravzaprav je predmet?
Primerek razreda, znan kot objekt, je način, kako dostopamo do funkcionalnosti razreda. Za izdelavo predmeta lahko uporabimo ključno besedo »novo«. Funkcije, podatkovni člani in obnašanje razreda, ki proizvede objekt v pomnilniku, so shranjeni.
5. Kakšna je razlika med izrazi statično, javno in nično?
Kjer koli v programu lahko dostopate do javno definiranih spremenljivk. Do statičnih spremenljivk je mogoče dostopati globalno brez zahteve po izdelavi primerka razreda. V C# se modifikator tipa, imenovan Void, uporablja za označevanje vrnjenega tipa metode.
6. Definirajte konstruktorje.
Konstruktor je funkcija člana, specifična za razred. Ko je objekt oblikovan, se samodejno pokliče konstruktor. Razred konstruira vse vrednosti podatkovnih članov, ko je inicializiran.
7. Kaj je C# pri zbiranju smeti?
Postopek čiščenja pomnilnika, ki je bil zaseden z nezaželenimi elementi, je znan kot zbiranje smeti. Določena količina pomnilnika je samodejno dodeljena objektu razreda, ko je ustvarjen v pomnilniku kopice. Zdaj, ko ste končali z delom na predmetu, je pomnilniški prostor, ki ga je prej zasedal, izgubljen. Spomin je treba sprostiti.
8. Kaj natančno pomeni struktura v C#?
V C# je struktura podatkovni tip, ki je sestavljen iz številnih podatkovnih tipov, kot so metode, polja, konstruktorji, konstante, lastnosti, indeksatorji, operaterji in celo druge strukture. Struktura pomaga pri konsolidaciji številnih vrst podatkov v eno samo enoto. Na ta način so analogni tečajem. Strukture so vrednostni tipi, medtem ko so razredi referenčni tipi.
9. Kako se koda C# prevede?
Ko je projekt ustvarjen, se izvorna koda C# prevede v vmesni jezik (IL). IL je zbirka navodil, ki generira strojno kodo za izvajanje na strojnem procesorju. Koda se pošlje iz predprocesorja v prevajalnik, nato v asembler in končno v povezovalnik v štirih fazah.
10. Jasno opišite različne razrede C#.
- Statični: To je vrsta razreda, ki ga ni mogoče instancirati, zato ne moremo uporabiti ključne besede new, da bi iz njega naredili predmet, lahko pa pokličemo člane razreda neposredno z uporabo njihovega imena razreda.
- Povzetek: Če želite definirati abstraktne razrede, uporabite ključno besedo abstract. Za abstraktne razrede ni mogoče ustvariti nobenih objektov. Če ga želite uporabiti, mora biti podedovan v podrazredu. V abstraktnem razredu so dovoljene preproste definicije abstraktnih in neabstraktnih metod.
- Delno: ta razred vam omogoča, da svoje lastnosti, metode in dogodke ločite v več izvornih datotek, ki so nato med gradnjo združene v en razred.
- Zapečateno: Zapečatenega razreda ni mogoče podedovati iz drugega razreda in ima omejene značilnosti. Modifikatorjev dostopa ni mogoče dodati zapečatenemu razredu.
11. Kaj pravzaprav so nazobčani nizi?
Matrika z elementi matrike se imenuje nazobčana matrika. Elementi nazobčanih nizov so lahko različnih oblik in velikosti.
12. Kakšna je razlika med parametroma out in ref?
Ko dajete argument kot ref, je treba parameter inicializirati, preden se posreduje metodi. Izhodnega parametra po drugi strani ni treba inicializirati, preden se posreduje metodi.
13. Kaj je destruktor v C#?
Destructor je vrsta metode v C#, ki je del razreda. Primarna funkcija destruktorja je brisanje primerkov razreda, ko niso več potrebni, da se sprosti pomnilnik. Destruktorji so včasih znani kot finalizatorji.
14. Kaj je indekser v C#?
Indeksatorji se v C# uporabljajo za iskanje primerkov razreda ali strukture. Do indeksiranih vrednosti je torej mogoče dostopati podobno kot do matrike, vendar brez izrecne deklaracije tipa ali člana primerka.
15. Kakšna je razlika med upravljano in neupravljano kodo?
Upravljana koda vam omogoča izvajanje kode v ogrodju .NET v upravljanem izvajalnem okolju CLR.
Nadzorovana koda se izvaja v upravljanem izvajalnem okolju in ne v operacijskem sistemu. Zagotavlja različne storitve, kot je zbiralnik smeti, obravnava izjem in tako naprej.
Neupravljana koda je koda, ki se ne izvaja v CLR in deluje zunaj ogrodja .NET. Ne zagotavljajo jezikovnih storitev na visoki ravni in zato delujejo brez njih. C++ je en tak primer.
16. Opišite serializacijo.
Iz predmeta je treba ustvariti tok bajtov, da ga lahko prenesete po omrežju. Serializacija je dejanje preoblikovanja postavke v tok bajtov. Vmesnik za serializacijo mora biti implementiran, da je element mogoče serializirati. Nasprotje konstruiranja predmeta iz toka bajtov se imenuje deserializacija.
17. Kako se polja in lastnosti v C# razlikujejo med seboj?
Polje je član razreda ali objekt katere koli vrste, ki služi kot lokacija za shranjevanje podatkov, medtem ko je lastnost član razreda, ki ponuja metodo za branje, pisanje in izračun vrednosti zasebnega polja.
18. Kako lahko podrobno opišete uporabo stavkov v C#?
Stavek using se uporablja za omejitev uporabe enega ali več virov znotraj aplikacije. Viri se nenehno porabljajo in sproščajo.
Primarna naloga te izjave je upravljanje neželenih virov in njihovo samodejno sproščanje. Ko je objekt, ki uporablja vir, oblikovan, se prepričajte, da je poklicana funkcija za odstranjevanje objekta, da sprosti vire, ki jih zahteva ta objekt; tukaj je uporaba stavkov koristna.
19. Kako bi implementirali številne vmesnike z istim imenom metode v istem razredu?
Če želite implementirati več vmesnikov z istim imenom metode, se izogibajte njihovi implementaciji znotraj telesa funkcije. Namesto tega bi podali ime vmesnika neposredno v telesu metode. Prevajalnik bo prepoznal, na katere metode vmesnika se sklicuje, in tako rešil težavo.
20. Kakšna je razlika med opravilom in nitjo v C#?
Nit je prava nit operacijskega sistema z lastnim skladom in viri jedra. Thread zagotavlja največ nadzora. Nit vam omogoča prekinitev (), začasno zaustavitev () ali nadaljevanje (). Stanje niti je mogoče opazovati ali nastaviti njene atribute, kot so velikost sklada, stanovanjsko stanje in kultura. CLR hrani skupino niti, ki jih ovija ThreadPool.
Task Parallel Library ima razred, imenovan Task. Za razliko od ThreadPoola opravilo nima lastne niti operacijskega sistema. Naloge izvaja TaskScheduler, čeprav privzeti razporejevalnik izvaja ThreadPool. Možno je prejeti obvestilo, ko je naloga končana, in pridobiti rezultat.
21. Kaj je funkcija finalize v C#?
Razred objektov, ki se uporablja za dejanja čiščenja, definira funkcijo finalize (). Ko sklicevanje na predmet ni uporabljeno v daljšem časovnem obdobju, bo zbiralnik smeti pogosto poklical to funkcijo.
Zbiralnik smeti samodejno sprosti nadzorovane vire, če pa želite sprostiti nepotrebne vire, kot so ročice datotek, podatkovne povezave itd., morate izrecno implementirati funkcijo finalize.
22. Razlikujte med finaliziranimi bloki in finaliziranjem.
Dokončani blok se pokliče po dokončanju blokov poskusi in ujemi, ker je potreben za obravnavanje izjem. Blok kode se izvede ne glede na to, ali je bila izjema ujeta. Koda bloka je na splošno čistejša.
Metoda finalize se prikliče tik pred zbiranjem smeti. Glavne odgovornosti dokončane metode so čiščenje neupravljane kode, ki se samodejno sproži vsakič, ko primerek ni ponovno priklican.
23. Podrobno opišite metodo C# dispose of.
Funkcija disposeof() sprosti neuporabljene vire objekta. Neuporabljeni viri, kot so datoteke, podatkovne povezave ipd. Ta funkcija je podana v vmesniku IDisposable, ki ga implementira razred z deklaracijo telesa vmesnika IDisposable.
Funkcija dispose se ne kliče samodejno; programer ga mora implementirati ročno za učinkovito uporabo virov.
24. Kaj je preobremenitev metode C#? Razjasniti.
Preobremenitev metod je tipičen pristop v C#, ki se uporablja za izdelavo več metod z istim imenom in določenimi podpisi. Ta postopek se ponovi z istim razredom.
Ko je postopek preobremenitve metode končan, prevajalnik začne z operacijami za klicanje določenih dejanj na podlagi preobremenitve metode.
25. Kakšna je razlika med samo za branje in konstantami?
Konstantne spremenljivke so deklarirane in inicializirane med prevajanjem. Po tem te vrednosti ni več mogoče spremeniti. Po drugi strani pa se samo za branje uporabi, ko je vrednost dodeljena med izvajanjem.
26. Kaj sta uporabniški nadzor in nadzor po meri?
Prevedena koda se uporablja za razvoj kontrolnikov po meri. Ti so lahko vključeni v zbirki orodij in so enostavni za uporabo. Z vlečenjem in spuščanjem teh kontrolnikov jih lahko razvijalci vključijo v svoje spletne obrazce.
Uporabniški kontrolniki in datoteke, vključene v ASP, so precej podobne. Prav tako jih je enostavno narediti. Po drugi strani pa uporabniških kontrolnikov ni mogoče dodati v orodjarno. Prav tako jih ni mogoče potegniti in spustiti iz njega.
27. Kaj je multicast delegat v C#?
Multicast delegat vzdržuje reference ali naslove na več funkcij hkrati. Ko prikličemo multicast delegata, bo priklical tudi vse druge funkcije, na katere se nanaša. Če želite poklicati več metod, uporabite celoten podpis metode, tako kot pooblaščenec. Kot primer:
28. Kaj točno je združevanje objektov v C#?
Združevanje objektov je tehnika načrtovanja v programski opremi, ki reciklira stvari, namesto da bi jih znova zgradila. To doseže tako, da izbrane elemente shrani v bazen in jih da na voljo za uporabo, ko jih aplikacija zahteva. Ta postopek izboljša zmogljivost z zmanjšanjem nepotrebnega ustvarjanja predmetov.
29. Kaj točno so generiki v C#.NET?
Generiki se uporabljajo za ustvarjanje razredov kode za večkratno uporabo, da se zmanjša redundanca kode, izboljša varnost tipov in izboljša hitrost. Z generiki lahko sestavimo razrede zbirk.
V sistemu je treba namesto razredov, kot je ArrayList, uporabiti generični imenski prostor. Imenski prostor za zbirke. Generiki spodbujajo uporabo parametriziranih tipov.
30. Ali je izvedljivo preglasiti zasebno virtualno metodo?
Zasebne virtualne metode ni mogoče preglasiti, ker je zasebna za razred in do nje ni mogoče dostopati zunaj njega.
31. Razlikujete med preobremenitvijo metode in preglasitvijo metode v C#?
Preglasitev metode je postopek spreminjanja temeljne definicije izpeljanega razreda. Metode izpeljanega razreda se sčasoma zaradi te strategije obnašajo drugače.
Po drugi strani pa lahko preobremenitev metode opišemo kot dejanje generiranja številnih metod z istim imenom, vendar z različnimi podpisi v istem razredu.
32. Kakšna je razlika med String in StringBuilderjem v C#?
Objekt niza je nespremenljiv, kar pomeni, da ga ni mogoče spremeniti, ko je enkrat ustvarjen. Vsak poskus spreminjanja predmeta niz bo povzročil ustvarjanje novega objekta niza.
Objekt graditelja nizov je po drugi strani upogljiv in ga je mogoče spremeniti, kot se razvijalcu zdi primerno.
33. Kaj pravzaprav so delegati?
V C++ so delegati načeloma enaki kazalcem funkcij. Edina razlika med obema je, da so delegati tipsko varni, medtem ko funkcijski kazalci niso. Delegati so potrebni, ker omogočajo konstrukcijo generičnih tipsko varnih funkcij.
34. Kdaj morate uporabiti večnitnost v C# in kdaj se ji morate izogniti?
Večnitnost, pogosto znana kot navojnost, je učinkovit pristop za povečanje hitrosti programa, v katerem se številne dejavnosti izvajajo hkrati. Omogoča neodvisno izvajanje različnih niti, namesto da bi čakali na dokončanje predhodnega koraka. To lahko poveča tempo programa.
Če pa je med seboj povezanih več procesov programa, večnitnost ni priporočljiva. Na primer, če bi bil korak B odvisen od tega, ali je bil najprej dokončan korak A, bi večnitnost povzročila pomisleke glede zmogljivosti in napake v programski opremi. Niti postajajo vse bolj občutljive, ko se program razvija v kompleksnosti.
35. Kaj je multicast delegat v C#?
Multicast delegat v C# se v nasprotju z osnovnim delegatom nanaša na številne ciljne metode. Ko je uporabljen multicast delegat, se kličejo vse funkcije, na katere kaže delegat. Implementirani so s pomočjo sistemskega razreda MulticastDelegate.
36. Kakšna je razlika med poznim in zgodnjim vezanjem v C#?
- Zgodnje povezovanje poteka v času prevajanja, medtem ko pozno povezovanje poteka med izvajanjem.
- Pozna vezava je pogosto počasnejša od zgodnje, saj se pojavi med izvajanjem.
- V nasprotju s poznim povezovanjem, ki uporablja objekt za razrešitev klicev metod, zgodnje povezovanje razreši klice metod z uporabo informacij o razredu.
37. Razlikujete med Directcastom in Ctype?
Vrsta predmeta, ki zahteva, da se tip izvajalnega časa ujema s podanim tipom v DirectCast, se pretvori z uporabo DirectCast.
Ko je podana pretvorba med izrazom in vrsto, se uporabi Ctype.
38. Kako se HashSet uporablja v C#?
V C# je HashSet neurejena zbirka različnih vrednosti. Na splošno se uporablja za preprečevanje vstavljanja podvojenih elementov v zbirko in pri tej nalogi deluje bolje kot seznam.
Za izvedbo se uporablja razred HashSet, ki izhaja iz sistema.
39. Prosimo, razložite združevanje niti v C#.
V C# je skupina niti zbirka niti. Te niti se uporabljajo za opravljanje nalog brez poseganja v funkcionalnost primarne niti. Nit v področju niti se vrne v področje niti, ko se konča z izvajanjem.
Sistemski razred vsebuje razrede, ki obravnavajo nit v področju niti in njena dejanja. Navijanje. ThreadPool je imenski prostor.
40. Kakšna je razlika med ključnima besedama Const in ReadOnly v C#?
- ReadOnly ni mogoče deklarirati znotraj metode, medtem ko Const lahko.
- Const je konstanta časa prevajanja, medtem ko je ReadOnly konstanta časa izvajanja.
- Vrednosti ReadOnly je mogoče spremeniti, vrednosti Const pa ne.
41. Katere podrobnosti o datoteki C# XSD lahko navedete?
XSD je kratica za XML Schema Definition. Če z datoteko XML ni povezana nobena datoteka XSD, ima lahko poljubne atribute, elemente in oznake. Datoteka XSD zagotavlja ogrodje za datoteko XML, ki določa, katere komponente in atributi naj bodo prisotni v datoteki XML ter njihov vrstni red.
42. Kaj vam pomenijo lastnosti dostopnika Get and Set?
V C# sta Get in Set poimenovana dostopniki, saj sta narejena z uporabo lastnosti. Lastnost omogoča branje in pisanje vrednosti zasebnega polja. Do takih zasebnih polj se dostopa prek dostopnikov.
Medtem ko se lastnost Get uporablja za vrnitev vrednosti lastnosti, se lastnost Set uporablja za nastavitev vrednosti.
43. Kaj točno je vbrizgavanje odvisnosti v C#?
Vstavljanje odvisnosti (DI) je tehnika načrtovanja v C#, ki se uporablja za ustvarjanje ohlapno povezanega programiranja. Ta postopek prenese ustvarjanje in vezavo odvisnih objektov izven razreda, na katerega se zanašajo. Glavni cilj je narediti prihodnje spremembe kode bolj obvladljive.
zaključek
C# je primarni programski jezik, ki se uporablja v vseh programskih jezikih višje ravni. Po razvijalcih C# je veliko povpraševanje in lahko najdejo privlačne karierne možnosti v panogah, kot so front-end razvoj, back-end programiranje in razvoj aplikacij. In ker ga Microsoft podpira, bo priljubljenost jezika C# le še rasla.
Zgoraj omenjena so najbolj ključna vprašanja na razgovoru za C# za izkušene strokovnjake in začetnike. glej Hashdorkova serija intervjujev za pomoč pri pripravi na razgovor.
Pustite Odgovori