Tartalomjegyzék[Elrejt][Előadás]
- 1. Mi is pontosan a C#?
- 2. Mi különbözteti meg a C#-t a C-től?
- 3. Mi is pontosan az osztály?
- 4. Mi is pontosan az objektum?
- 5. Mi a különbség a statikus, nyilvános és érvénytelen kifejezések között?
- 6. Definiálja a konstruktorokat.
- 7. Mi a C# a szemétszállításban?
- 8. Mit jelent pontosan a struktúra a C#-ban?
- 9. Hogyan fordítható le a C# kód?
- 10. Világosan írja le a különböző C# osztályokat!
- 11. Mik is pontosan a Jagged Arrays?
- 12. Mi a különbség az out és ref paraméterek között?
- 13. C#-ban mi az a destruktor?
- 14. C#-ban mi az indexelő?
- 15. Mi a különbség a felügyelt és a nem menedzselt kód között?
- 16. Ismertesse a szerializálást!
- 17. Hogyan változnak a mezők és a tulajdonságok C#-ban?
- 18. Hogyan írja le részletesen az utasítások használatát C#-ban?
- 19. Hogyan valósítana meg számos interfészt azonos metódusnévvel ugyanabban az osztályban?
- 20. C#-ban mi a különbség a Task és a Thread között?
- 21. Mi a véglegesítés függvény a C#-ban?
- 22. Tegyen különbséget a véglegesítési blokkok és a véglegesítés között.
- 23. Ismertesse részletesen a C# dispose of módszert!
- 24. Mi az a C# Method Overloading? Tisztázd.
- 25. Mi a különbség a csak olvasható és az állandók között?
- 26. Mi az a felhasználói vezérlés és az egyéni vezérlés?
- 27. C#-ban mi az a multicast delegált?
- 28. Mi is pontosan az objektumkészletezés C#-ban?
- 29. Pontosan mik is a generikusok a C#.NET-ben?
- 30. Megvalósítható-e egy privát virtuális metódus felülbírálása?
- 31. Különbséget tesz a metódus túlterhelése és a metódus felülbírálása között C#-ban?
- 32. C#-ban mi a különbség a String és a StringBuilder között?
- 33. Mik is pontosan a küldöttek?
- 34. Mikor érdemes többszálat használni C#-ban és mikor kerülni?
- 35. C#-ban mi az a multicast delegált?
- 36. Mi a különbség a C# nyelvben a késői kötés és a korai kötés között?
- 37. Különbséget tesz a Directcast és a Ctype között?
- 38. Hogyan használható a HashSet a C#-ban?
- 39. Magyarázza el a Thread Pooling-ot C# nyelven.
- 40. Mi a különbség a Const és a ReadOnly kulcsszavak között a C# nyelvben?
- 41. Milyen részleteket tud megadni a C# XSD fájlról?
- 42. Mit jelent az Ön számára az Accessor tulajdonságok lekérése és beállítása?
- 43. Mi is pontosan a függőségi injekció C#-ban?
- Következtetés
A C# (korábbi nevén C Shar) egy objektum-orientált programozási nyelv, amelyet a fejlesztők gyakran használnak több tevékenység elvégzésére és több cél elérésére.
Az objektum-orientált programozási nyelvek, mint például a C++, Python és Java, többféle ízben kaphatók. Ezeket a programozási nyelveket úgy tervezték, hogy bizonyos kereteken belül működjenek. Hasonlóképpen, a C#-t egy adott keretrendszerhez hozzák létre és fejlesztik, nevezetesen a NET-hez.
A .NET keretrendszert a microsoft. Hatalmas platformot biztosít alkalmazások, deklarációk, alkalmazási utasítások stb. fejlesztéséhez. A C# használható webfejlesztésre, játékra, mobil alkalmazások, Windows alkalmazások és más hasonló projektek.
Ezzel az előnyökkel bővült a C# használata, és megduplázódott az azt pontosan tudó szakemberek iránti igény. Mert a C# olyan népszerű programozási nyelv, kis és nagy cégek sokasága alapozza termékeit arra.
Gyakorold tehát az alap- és emelt szintű C# kérdéseket az interjúk lebonyolításához.
1. Mi is pontosan a C#?
A Microsoft C# egy kortárs, általános célú, objektumorientált programozás nyelv. A C# a Common Language Infrastructure (CLI) számára készült, amely végrehajtható kódból és futási környezetből áll, amely lehetővé teszi számos magas szintű nyelv használatát különféle számítógépes rendszereken és architektúrákon.
2. Mi különbözteti meg a C#-t a C-től?
A C-t általában eljárási nyelvnek nevezik, míg a C# inkább objektum-orientált. A fő különbség az, hogy a C# lehetővé teszi az automatikus szemétgyűjtést a Common Language Runtime (CLR) segítségével, míg a C nem. A C# futtatásához a.NET keretrendszer szükséges, míg a C platformfüggetlen nyelv.
3. Mi is pontosan az osztály?
Az osztályok sablonként szolgálnak az objektumok építéséhez. A technikákkal együtt tulajdonságaik is vannak. Egyetlen osztályból egy objektum több példányát is előállíthatjuk.
4. Mi is pontosan az objektum?
Az objektumként ismert osztálypéldány az osztály funkcióihoz való hozzáférés módja. Egy objektum létrehozásához használhatjuk az „új” kulcsszót. A memóriában objektumot előállító osztály funkciói, adattagjai és viselkedése tárolva van.
5. Mi a különbség a statikus, nyilvános és érvénytelen kifejezések között?
A programban bárhol elérheti a nyilvánosan meghatározott változókat. A statikus változók globálisan elérhetők anélkül, hogy szükség lenne egy osztálypéldány létrehozására. A C#-ban a Void nevű típusmódosítót használjuk a metódus visszatérési típusának jelzésére.
6. Definiálja a konstruktorokat.
A konstruktor egy osztályspecifikus tagfüggvény. Egy objektum létrehozásakor a konstruktor automatikusan meghívásra kerül. Az osztály az adattagok összes értékét az inicializáláskor állítja össze.
7. Mi a C# a szemétszállításban?
A nemkívánatos tárgyak által elfoglalt memória megtisztításának folyamatát szemétgyűjtésnek nevezik. Egy bizonyos mennyiségű memória automatikusan hozzárendelődik egy osztályobjektumhoz, amikor az létrejön a kupacmemóriában. Most, hogy befejezte a munkát az elemen, a korábban elfoglalt memóriaterület elpazarolt. A memóriát fel kell szabadítani.
8. Mit jelent pontosan a struktúra a C#-ban?
A C#-ban a struktúra olyan adattípus, amely számos adattípusból áll, például metódusokból, mezőkből, konstruktorokból, konstansokból, tulajdonságokból, indexelőkből, operátorokból és még más struktúrákból is. A struktúra számos adattípus egyetlen egységbe történő összevonását segíti. Ily módon a tanfolyamokhoz hasonlóak. A struktúrák értéktípusok, míg az osztályok referenciatípusok.
9. Hogyan fordítható le a C# kód?
A projekt létrehozásakor a C# forráskódot Intermediate Language (IL) nyelvre fordítják. Az IL utasítások gyűjteménye, amely gépi kódot generál a gépi processzoron történő végrehajtáshoz. A kód az előfeldolgozótól a fordítóhoz, majd az assemblerhez, végül a linkerhez kerül négy lépésben.
10. Világosan írja le a különböző C# osztályokat!
- Statikus: Ez az a fajta osztály, amely nem példányosítható, ezért az új kulcsszóval nem készíthetünk belőle objektumot, hanem az osztály tagjait az osztálynevükkel közvetlenül hívhatjuk.
- Absztrakt: Absztrakt osztályok meghatározásához használja az absztrakt kulcsszót. Absztrakt osztályokhoz nem hozható létre objektum. Egy alosztályban kell örökölnie, ha használni akarja. Az absztrakt és nem absztrakt metódusok egyszerű meghatározásai megengedettek egy Abstract osztályon belül.
- Részleges: Ez az osztály lehetővé teszi, hogy tulajdonságait, metódusait és eseményeit több forrásfájlba különítse el, amelyeket a későbbiekben egyetlen osztályba egyesít a felépítés során.
- Lezárt: Egy lezárt osztály nem örökölhető egy másik osztálytól, és korlátozott jellemzői vannak. Hozzáférés-módosítók nem adhatók hozzá a lezárt osztályhoz.
11. Mik is pontosan a Jagged Arrays?
A tömbelemeket tartalmazó tömböt szaggatott tömbnek nevezzük. A Jagged Arrays elemei sokféle alakúak és méretűek lehetnek.
12. Mi a különbség az out és ref paraméterek között?
Amikor egy argumentumot ad meg refként, a paramétert inicializálni kell, mielőtt átadná a metódusnak. Az out paramétert viszont nem kell inicializálni, mielőtt egy metódushoz hozzájuttatnák.
13. C#-ban mi az a destruktor?
A destruktor egyfajta metódus a C#-ban, amely egy osztály része. A destruktor elsődleges feladata egy osztály példányainak törlése, amikor már nincs rájuk szükség a memória felszabadításához. A destruktorokat néha véglegesítőknek is nevezik.
14. C#-ban mi az indexelő?
Az indexelők a C#-ban osztályok vagy struktúrák példányainak megkeresésére szolgálnak. Az indexelt értékek ezért a tömbhöz hasonlóan érhetők el, de anélkül, hogy kifejezetten deklarálni kellene egy típust vagy példánytagot.
15. Mi a különbség a felügyelt és a nem menedzselt kód között?
A felügyelt kód lehetővé teszi a kód futtatását a.NET keretrendszerben egy felügyelt CLR futási környezetben.
A vezérelt kód a felügyelt futási környezetben fut, nem pedig az operációs rendszeren. Különféle szolgáltatásokat nyújt, például szemétgyűjtőt, kivételkezelést és így tovább.
A nem felügyelt kód olyan kód, amely nem fut le a CLR-en, és a.NET keretrendszeren kívül működik. Nem nyújtanak magas szintű nyelvi szolgáltatásokat, ezért nélkülük működnek. A C++ egy ilyen példa.
16. Ismertesse a szerializálást!
Egy bájtfolyamot kell létrehozni az elemből ahhoz, hogy hálózaton keresztül továbbítsa. A szerializálás az a művelet, amikor egy elemet bájtok folyamává alakítanak. A Serialize Interface-t implementálni kell ahhoz, hogy egy elem szerializálható legyen. Az objektum bájtfolyamból való felépítésének ellentéte a deszerializáció.
17. Hogyan változnak a mezők és a tulajdonságok C#-ban?
A mező egy osztálytag vagy bármilyen objektum, amely adattárolási helyként szolgál, míg a tulajdonság egy olyan osztálytag, amely módszert kínál egy privát mező olvasásához, írásához és értékének kiszámításához.
18. Hogyan írja le részletesen az utasítások használatát C#-ban?
A using utasítás egy vagy több erőforrás használatának korlátozására szolgál az alkalmazáson belül. Az erőforrásokat folyamatosan fogyasztják és felszabadítják.
Ennek az utasításnak az elsődleges feladata a nem kívánt erőforrások kezelése és azok automatikus felszabadítása. Az erőforrást használó objektum létrehozása után győződjön meg arról, hogy az objektum selejtezési funkciója meghívásra kerül az objektum által igényelt erőforrások felszabadításához; itt jön jól a kijelentések használata.
19. Hogyan valósítana meg számos interfészt azonos metódusnévvel ugyanabban az osztályban?
Ha több interfészt szeretne megvalósítani azonos metódusnévvel, kerülje azok megvalósítását a függvény törzsében. Ehelyett az interfész nevét közvetlenül a metódustörzsben kell megadnia. A fordító felismeri, hogy mely interfész metódusokra hivatkozik, és megoldja a problémát.
20. C#-ban mi a különbség a Task és a Thread között?
A szál egy igazi operációs rendszer szál, saját veremmel és kernel erőforrásokkal. A szál biztosítja a legtöbb irányítást. A szál lehetővé teszi a megszakítást (), a felfüggesztést () vagy a folytatást (). A szál állapota megfigyelhető, vagy attribútumai, például a verem mérete, lakásállapota és kultúrája beállíthatók. A CLR a ThreadPool által becsomagolt szálkészletet tart fenn.
A Task Parallel Library-nek van egy Task nevű osztálya. A ThreadPool-tól eltérően a Task-nak nincs saját operációs rendszer-szála. A feladatokat a TaskScheduler hajtja végre, bár az alapértelmezett ütemezőt a ThreadPool hajtja végre. Lehetőség van értesítést kapni a Feladat befejezéséről és eredményt kapni.
21. Mi a véglegesítés függvény a C#-ban?
A tisztítási műveletekhez használt objektumosztály határozza meg a véglegesítés () függvényt. Ha egy objektumra való hivatkozást hosszabb ideig nem használnak, a szemétgyűjtő gyakran meghívja ezt a funkciót.
A szemétgyűjtő automatikusan felszabadítja a vezérelt erőforrásokat, de ha fel akarja szabadítani a szükségtelen erőforrásokat, például fájlkezelőket, adatkapcsolatokat és így tovább, akkor kifejezetten végre kell hajtania a véglegesítés funkciót.
22. Tegyen különbséget a véglegesítési blokkok és a véglegesítés között.
A kész blokk a try-and-catch blokkok befejezése után kerül meghívásra, mivel a kivételkezeléshez szükséges. A kódblokk végrehajtása függetlenül attól, hogy a kivételt elkapták-e. A blokk kódja általában tisztább.
A véglegesítési módszert közvetlenül a szemétgyűjtés előtt hívják meg. A véglegesített metódus fő feladata a nem felügyelt kód törlése, amely automatikusan aktiválódik, amikor egy példányt nem hívnak újra.
23. Ismertesse részletesen a C# dispose of módszert!
A disposeof() függvény felszabadítja az objektum fel nem használt erőforrásait. Fel nem használt erőforrások, például fájlok, adatkapcsolatok és így tovább. Ezt a függvényt az IDisposable interfész adja meg, amelyet az osztály az IDisposable interfész törzsének deklarálásával valósít meg.
A selejtezési funkció nem hívódik automatikusan; a programozónak kézzel kell megvalósítania a hatékony erőforrás-felhasználás érdekében.
24. Mi az a C# Method Overloading? Tisztázd.
A metódusok túlterhelése a C# tipikus megközelítése, amelyet számos, azonos nevű és meghatározott aláírással rendelkező metódus létrehozására használnak. Ezt az eljárást megismételjük ugyanabban az osztályban.
Amikor a metódus túlterhelése befejeződött, a fordító megkezdi a műveleteket a megadott műveletek meghívására a metódus túlterhelése alapján.
25. Mi a különbség a csak olvasható és az állandók között?
A konstans változókat a fordítás során deklarálják és inicializálják. Ezt követően ez az érték nem módosítható. Másrészt a csak olvasható, ha a futási időben hozzá van rendelve egy érték.
26. Mi az a felhasználói vezérlés és az egyéni vezérlés?
A lefordított kódot egyéni vezérlők fejlesztésére használják. Ezeket az eszköztár tartalmazza, és könnyen használhatók. A vezérlők áthúzásával a fejlesztők felvehetik őket webes űrlapjaikra.
A felhasználói vezérlők és az ASP-vel ellátott fájlok meglehetősen hasonlóak. Elkészítésük is egyszerű. A felhasználói vezérlők viszont nem adhatók hozzá az eszköztárhoz. Azt sem lehet kihúzni és leejteni róla.
27. C#-ban mi az a multicast delegált?
A csoportos küldés delegáltja egyidejűleg több funkcióhoz tart fenn hivatkozásokat vagy címeket. Amikor meghívjuk a csoportos küldés delegáltját, az meg fogja hívni az összes többi funkciót is, amelyre hivatkozik. Több metódus meghívásához használja a teljes metódusaláírást, akárcsak a delegált. Mint például:
28. Mi is pontosan az objektumkészletezés C#-ban?
Az objektumkészletezés olyan tervezési technika a szoftverekben, amely a dolgokat újrahasznosítja, nem pedig újraépíti. Ezt úgy éri el, hogy a kiválasztott elemeket egy készletben tárolja, és elérhetővé teszi őket, amikor egy alkalmazás kéri őket. Ez az eljárás a szükségtelen objektumgenerálás csökkentésével javítja a teljesítményt.
29. Pontosan mik is a generikusok a C#.NET-ben?
Az általánosokat újrafelhasználható kódosztályok létrehozására használják a kódredundancia csökkentése, a típusbiztonság és a sebesség javítása érdekében. Gyűjtemény osztályokat készíthetünk generikusokkal.
A rendszerben egy általános névteret kell használni az olyan osztályok helyett, mint az ArrayList. Névtér a gyűjtemények számára. A paraméterezett típusok használatát a generikusok ösztönzik.
30. Megvalósítható-e egy privát virtuális metódus felülbírálása?
A privát virtuális metódusokat nem lehet felülírni, mivel az osztály privát metódusa, és azon kívülről nem érhető el.
31. Különbséget tesz a metódus túlterhelése és a metódus felülbírálása között C#-ban?
A metódus felülbírálása egy származtatott osztály alapvető definíciójának megváltoztatásának folyamata. A származtatott osztály metódusai ennek a stratégiának köszönhetően végül másként viselkednek.
A metódusok túlterhelése viszont úgy írható le, mint több, azonos nevű, de különböző aláírásokkal rendelkező metódus létrehozása ugyanabban az osztályban.
32. C#-ban mi a különbség a String és a StringBuilder között?
Egy karakterlánc objektum megváltoztathatatlan, ami azt jelenti, hogy létrehozása után nem módosítható. A karakterlánc objektum megváltoztatására tett kísérletek új karakterlánc objektum létrehozását eredményezik.
A string builder objektum viszont képlékeny, és a fejlesztő úgy látja, módosítható.
33. Mik is pontosan a küldöttek?
A C++ nyelvben a delegáltak alapvetően megegyeznek a függvénymutatókkal. Az egyetlen különbség a kettő között, hogy a delegáltak típusbiztosak, míg a funkciómutatók nem. A küldöttekre azért van szükség, mert lehetővé teszik az általános típusbiztos funkciók felépítését.
34. Mikor érdemes többszálat használni C#-ban és mikor kerülni?
A többszálú, gyakran szálfűzésként ismert módszer hatékony módszer egy olyan program sebességének növelésére, amelyben számos tevékenység fut párhuzamosan. Lehetővé teszi a különböző szálak önálló végrehajtását, ahelyett, hogy megvárnák az előző lépés befejezését. Ez képes növelni a program ütemét.
Ha azonban a program több folyamata össze van kötve, a többszálú feldolgozás nem javasolt. Például, ha a B lépés attól függ, hogy az A lépést először fejezik be, a többszálú feldolgozás teljesítménybeli problémákat és szoftverhibákat okozna. A szálak feldolgozása egyre érzékenyebbé válik, ahogy a program bonyolultabbá válik.
35. C#-ban mi az a multicast delegált?
A multicast delegált C#-ban, az alap delegálttal szemben, számos célmódszerre hivatkozik. Ha egy csoportos küldést delegált használ, akkor a delegált által mutatott összes funkció meghívásra kerül. Megvalósításuk a rendszer MulticastDelegate osztályának segítségével történik.
36. Mi a különbség a C# nyelvben a késői kötés és a korai kötés között?
- A korai kötés a fordítási időben, míg a késői kötés futási időben történik.
- A késői kötés gyakran lassabb, mint a korai kötés, mivel futásidőben történik.
- A késői összerendeléssel ellentétben, amely az objektumot használja fel a metódushívások feloldására, a korai kötés osztályinformációk segítségével oldja fel a metódushívásokat.
37. Különbséget tesz a Directcast és a Ctype között?
Az olyan objektumtípus, amelynek futásidejű típusának meg kell felelnie a DirectCastben megadott típusnak, a DirectCast segítségével konvertálódik.
Ha konverziót adunk meg egy kifejezés és egy típus között, a Ctype kerül felhasználásra.
38. Hogyan használható a HashSet a C#-ban?
A C# nyelvben a HashSet különálló értékek rendezetlen gyűjteménye. Általában arra szolgál, hogy megakadályozza a duplikált elemek beszúrását egy gyűjteménybe, és ennél a feladatnál jobban teljesít, mint egy lista.
A rendszerből származó HashSet osztályt használják ennek megvalósítására.
39. Magyarázza el a Thread Pooling-ot C# nyelven.
A C# nyelvben a szálkészlet szálak gyűjteménye. Ezek a szálak az elsődleges szál funkcióinak megzavarása nélkül való feladatok elvégzésére szolgálnak. A szálkészletben lévő szál a futás befejeztével visszatér a szálkészletbe.
A System osztály olyan osztályokat tartalmaz, amelyek a szálkészletben lévő szálat és annak műveleteit kezelik. Befűzés. A ThreadPool egy névtér.
40. Mi a különbség a Const és a ReadOnly kulcsszavak között a C# nyelvben?
- ReadOnly nem deklarálható a metóduson belül, míg a Const igen.
- A Const egy fordítási idő, míg az ReadOnly egy futási állandó.
- A ReadOnly értékek módosíthatók, de a Const értékek nem.
41. Milyen részleteket tud megadni a C# XSD fájlról?
Az XSD az XML Schema Definition rövidítése. Ha nem kapcsolódik XSD-fájl az XML-fájlhoz, annak bármilyen attribútuma, eleme és címkéje lehet. Az XSD-fájl keretet biztosít az XML-fájl számára, meghatározva, hogy milyen összetevők és attribútumok legyenek jelen az XML-fájlban, valamint ezek sorrendje.
42. Mit jelent az Ön számára az Accessor tulajdonságok lekérése és beállítása?
A C# nyelvben a Get és a Set elnevezést accessoroknak nevezik, mivel a tulajdonságok használatával készültek. A tulajdonság lehetővé teszi egy privát mező értékének olvasását és írását. Az ilyen privát mezők elérése hozzáférési pontokon keresztül történik.
Míg a Get tulajdonság egy tulajdonság értékének visszaadására szolgál, a Set tulajdonság az érték beállítására szolgál.
43. Mi is pontosan a függőségi injekció C#-ban?
A függőségi befecskendezés (DI) egy tervezési technika a C#-ban, amelyet lazán összekapcsolt programozás létrehozására használnak. Ez az eljárás átviszi a függő objektumok létrehozását és összerendelését azon az osztályon kívülre, amelyre támaszkodnak. A fő cél a jövőbeni kódmódosítások kezelhetőbbé tétele.
Következtetés
A C# az elsődleges programozási nyelv, amelyet minden magasabb szintű programozási nyelv használ. A C# fejlesztőkre nagy a kereslet, és vonzó karrierlehetőségeket találhatnak az olyan iparágakban, mint a front-end fejlesztés, a háttérprogramozás és az alkalmazásfejlesztés. És mivel a Microsoft támogatja, a C# népszerűsége csak nőni fog.
A fent említettek a legfontosabb C# interjúkérdések tapasztalt szakemberek és kezdők számára. Lát Hashdork interjúsorozata segítségért az interjú előkészítéséhez.
Hagy egy Válaszol