Enhavtabelo[Kaŝi][Montri]
- 1. Kio ĝuste estas C#?
- 2. Kio distingas C# de C?
- 3. Kio ekzakte estas klaso?
- 4. Kio ekzakte estas objekto?
- 5. Kio estas la distingo inter la terminoj statika, publika kaj malplena?
- 6. Difinu Konstruilojn.
- 7. Kio estas C# en rubkolekto?
- 8. Kion precize signifas strukturo en C#?
- 9. Kiel kompiliĝas C#-kodo?
- 10. Klare priskribu la malsamajn klasojn de C#.
- 11. Kio ĝuste estas Jagged Arrays?
- 12. Kio estas la distingo inter la ekster kaj ref parametroj?
- 13. En C#, kio estas detruanto?
- 14. En C#, kio estas indeksilo?
- 15. Kio estas la diferenco inter administrita kaj neadministrata kodo?
- 16. Priskribu seriigon.
- 17. En C#, kiel kampoj kaj propraĵoj varias unu de la alia?
- 18. Kiel vi povas priskribi uzantajn deklarojn en C# detale?
- 19. Kiel vi efektivigus multajn interfacojn kun la sama metodonomo en la sama klaso?
- 20. En C#, kio estas la distingo inter Tasko kaj Fadeno?
- 21. Kio estas la finfina funkcio en C#?
- 22. Faru distingon inter fini blokoj kaj fini.
- 23. Priskribu la C# disponi-metodon detale.
- 24. Kio estas C#-Metoda Superŝarĝado? Klarigi.
- 25. Kio estas la distingo inter nurlegebla kaj konstantoj?
- 26. Kio estas Uzanta Kontrolo kaj Propra Kontrolo?
- 27. En C#, kio estas multielsenda delegito?
- 28. Kio ĝuste estas objekta kunigo en C#?
- 29. Kio ĝuste estas generikoj en C#.NET?
- 30. Ĉu estas farebla superregi privatan virtualan metodon?
- 31. Diferencigi inter metodo superŝarĝado kaj metodo superregado en C#?
- 32. En C#, kio estas la distingo inter String kaj StringBuilder?
- 33. Kio precize estas delegitoj?
- 34. Kiam vi devus uzi multfadenadon en C# kaj kiam vi devus eviti ĝin?
- 35. En C#, kio estas multielsenda delegito?
- 36. En C#, kio estas la distingo inter malfrua ligado kaj frua ligado?
- 37. Diferencigi inter Directcast kaj Ctype?
- 38. Kiel estas HashSet uzata en C#?
- 39. Bonvolu klarigi Thread Pooling en C#.
- 40. Kio estas la distingo inter la ŝlosilvortoj Const kaj ReadOnly en C#?
- 41. Kiajn detalojn pri la C# XSD-dosiero vi povas provizi?
- 42. Kion signifas por vi Get and Set Accessor-propraĵoj?
- 43. Kio ĝuste estas dependeca injekto en C#?
- konkludo
C# (antaŭe konata kiel C sharp) estas objektema programlingvo, kiu estas ofte uzata de programistoj por fari plurajn agadojn kaj atingi plurajn celojn.
Objekt-orientitaj programlingvoj, kiel ekzemple C++, Python, kaj Java, venas en diversaj gustoj. Ĉi tiuj programlingvoj estas dizajnitaj por funkcii ene de certa kadro. Simile, C# estas kreita kaj evoluigita por specifa kadro, nome, RETO.
La kadro .NET estis kreita de microsoft. Ĝi provizas vastan platformon por disvolvi aplikaĵojn, deklarojn, aplikajn instrukciojn ktp. C# povas esti uzata por retejo-disvolviĝo, videoludado, moveblaj apps, Windows-aplikoj, kaj aliaj similaj projektoj.
Kun tiaj avantaĝoj, la uzo de C# disetendiĝis, kaj la bezono de specialistoj kiuj povas uzi ĝin precize grimpis duobliĝis. Ĉar C# estas tiel populara programlingvo, amaso da grandaj kaj malgrandaj firmaoj bazas siajn produktojn sur ĝi.
Do, praktiku bazajn kaj altnivelajn C#-demandojn por atingi la intervjuojn.
1. Kio ĝuste estas C#?
Microsoft C# estas nuntempa, ĝeneraluzebla, objektema programado lingvo. C# estas celita por la Komuna Lingvo-Infrastrukturo (CLI), kiu konsistas el plenumebla kodo kaj rultempa medio, kiu ebligas la uzadon de multaj altnivelaj lingvoj en diversaj komputilaj sistemoj kaj arkitekturoj.
2. Kio distingas C# de C?
C estas kutime konata kiel la procedura lingvo, dum C# estas pli objektema. La ĉefa distingo estas, ke C# permesas aŭtomatan rubkolekton per la Common Language Runtime (CLR), dum C ne faras. C# postulas la kadron.NET por funkcii, dum C estas platform-sendependa lingvo.
3. Kio ekzakte estas klaso?
Klaso servas kiel ŝablono por konstrui objektojn. Kune kun teknikoj, ĝi havas atributojn. El ununura klaso, ni povas produkti plurajn okazojn de objekto.
4. Kio ekzakte estas objekto?
Klasa petskribo konata kiel objekto estas kiel ni aliras la funkciojn de klaso. Por konstrui objekton, ni povas uzi la "nova" ŝlosilvorto. La funkcioj, datenmembroj, kaj konduto de klaso kiu produktas objekton en memoro estas stokitaj.
5. Kio estas la distingo inter la terminoj statika, publika kaj malplena?
Ie ajn en la programo povas aliri publike difinitajn variablojn. Senmovaj variabloj povas esti aliritaj tutmonde sen la postulo konstrui klaskazaĵon. En C#, tipmodifilo nomita Void estas uzata por indiki la revenspecon de metodo.
6. Difinu Konstruilojn.
Konstrukciisto estas klas-specifa membrofunkcio. Kiam objekto estas formita, la konstruilo estas vokita aŭtomate. La klaso konstruas ĉiujn valorojn de datenmembroj kiam ĝi estas pravigita.
7. Kio estas C# en rubkolekto?
La procezo de purigado de memoro, kiu estis okupita de nedezirataj aĵoj, estas konata kiel rubkolekto. Certa kvanto de memoro estas aŭtomate asignita al klasobjekto kiam ĝi estas kreita en la amasmemoro. Nun kiam vi finis labori pri la objekto, la memorspaco, kiun ĝi antaŭe okupis, estas malŝparita. Memoro devas esti liberigita.
8. Kion precize signifas strukturo en C#?
En C#, strukturo estas datumtipo kiu konsistas el multaj datumtipoj, kiel ekzemple metodoj, kampoj, konstrukciistoj, konstantoj, propraĵoj, indeksiloj, funkciigistoj, kaj eĉ aliaj strukturoj. Strukturo helpas en la firmiĝo de multaj datumspecoj en ununuran unuon. Tiamaniere ili estas analogaj al kursoj. Strukturoj estas valorspecoj, dum klasoj estas referencspecoj.
9. Kiel kompiliĝas C#-kodo?
Kiam projekto estas kreita, la fontkodo C# estas kompilita en Mezan Lingvon (IL). IL estas kolekto de instrukcioj, kiuj generas maŝinkodon por ekzekuto sur maŝinprocesoro. Kodo estas sendita de la antaŭprocesoro al la kompililo, poste al la asemblero, kaj finfine al la ligilo en kvar stadioj.
10. Klare priskribu la malsamajn klasojn de C#.
- Statika: Ĝi estas la speco de klaso kiu ne povas esti instantiigita, tial ni ne povas uzi la novan ŝlosilvorton por fari objekton de ĝi, sed ni povas voki la membrojn de la klaso rekte uzante ilian klasnomon.
- Abstraktaĵo: Por difini abstraktajn klasojn, uzu la abstraktan ŝlosilvorton. Neniuj objektoj povas esti kreitaj por abstraktaj klasoj. Ĝi devas esti heredita en subklaso se vi volas uzi ĝin. Simplaj difinoj de abstraktaj kaj ne-abstraktaj metodoj estas permesitaj ene de Abstrakta klaso.
- Parta: Ĉi tiu klaso ebligas al vi apartigi viajn trajtojn, metodojn kaj eventojn en plurajn fontdosierojn, kiuj poste estas kombinitaj en ununuran klason je konstrua tempo.
- Sigelita: sigelita klaso ne povas esti heredita de alia klaso kaj havas limigitajn trajtojn. Alirmodifiloj ne povas esti aldonitaj al la sigelita klaso.
11. Kio ĝuste estas Jagged Arrays?
Tabelo kun tabelelementoj estas referita kiel dentita tabelo. Elementoj de Jagged Arrays povus esti de multaj formoj kaj grandecoj.
12. Kio estas la distingo inter la ekster kaj ref parametroj?
Donante argumenton kiel ref, la parametro devas esti pravaligita antaŭ esti transdonita al la metodo. Out-parametro, aliflanke, ne bezonas esti pravigita antaŭ esti liverita al metodo.
13. En C#, kio estas detruanto?
Detruanto estas speco de metodo en C# kiu estas parto de klaso. La primara funkcio de detruanto estas forigi kazojn de klaso kiam ili ne plu estas postulataj por liberigi memoron. Detruantoj foje estas konataj kiel finigiloj.
14. En C#, kio estas indeksilo?
Indeksiloj estas uzataj en C# por trovi kazojn de klaso aŭ strukturo. La indeksitaj valoroj tial povas esti aliritaj simile al tabelo, sed sen devi eksplicite deklari tipon aŭ ekzemplan membron.
15. Kio estas la diferenco inter administrita kaj neadministrata kodo?
Administrita kodo permesas al vi ruli kodon en la kadro.NET en administrita CLR rultempa medio.
Kontrolita kodo efektiviĝas sur la administrita rultempa medio prefere ol la operaciumo. Disponigas diversajn servojn kiel rubujo, esceptotraktado ktp.
Neadministrita kodo estas kodo, kiu ne efektiviĝas sur la CLR kaj funkcias ekster la kadro.NET. Ili ne provizas altnivelajn lingvajn servojn kaj do funkcias sen ili. C++ estas unu tia ekzemplo.
16. Priskribu seriigon.
Fluo de bajtoj devas esti kreita de la objekto por transdoni ĝin tra reto. Seriigo estas la ago de transformado de objekto en fluon de bajtoj. La Seriigi Interfacon devas esti efektivigita por ke objekto estu seriigebla. La malo de konstruado de objekto el fluo de bajtoj estas nomita de-serialigo.
17. En C#, kiel kampoj kaj propraĵoj varias unu de la alia?
Kampo estas klasmembro aŭ objekto de iu speco kiu funkcias kiel loko por stokado de datumoj, dum posedaĵo estas klasmembro kiu ofertas metodon por legi, skribi kaj komputi la valoron de privata kampo.
18. Kiel vi povas priskribi uzantajn deklarojn en C# detale?
La uzanta deklaro estas uzata por limigi la uzon de unu aŭ pluraj rimedoj ene de la aplikaĵo. La rimedoj estas konsumitaj kaj liberigitaj konstante.
La ĉefa tasko de ĉi tiu deklaro estas administri nedeziratajn rimedojn kaj aŭtomate liberigi ilin. Post kiam la objekto kiu uzas la rimedon estas formita, certigu ke la disponfunkcio de la objekto estas vokita por liberigi la rimedojn postulatajn de tiu objekto; jen kie uzado de deklaroj utilas.
19. Kiel vi efektivigus multajn interfacojn kun la sama metodonomo en la sama klaso?
Por efektivigi plurajn interfacojn kun la sama metodonomo, evitu efektivigi ilin ene de la korpo de la funkcio. Anstataŭe, vi liverus la nomon de la interfaco rekte en la metodokorpo. La kompililo rekonos kiuj interfacmetodoj estas referencitaj, traktante la problemon.
20. En C#, kio estas la distingo inter Tasko kaj Fadeno?
Fadeno estas vera Operaciuma fadeno kun siaj propraj stako kaj kernaj rimedoj. Fadeno provizas plej multe da kontrolo. La fadeno permesas interrompi (), suspendi (), aŭ rekomenci (). La statuso de Fadeno povas esti observita aŭ ĝiaj atributoj, kiel ekzemple stakgrandeco, apartamento-stato kaj kulturo, povas esti agordita. La CLR konservas aron da fadenoj envolvitaj de ThreadPool.
La Task Paralela Biblioteko havas klason nomitan Task. Male al la ThreadPool, la Tasko ne havas sian propran Operaciuman fadenon. Taskoj estas efektivigitaj de la TaskScheduler, kvankam la defaŭlta planilo estas efektivigita de la ThreadPool. Eblas esti sciigita kiam Tasko finiĝas kaj akiri rezulton.
21. Kio estas la finfina funkcio en C#?
La objektoklaso, kiu estas uzata por purigado de agoj, difinas la funkcion finalize (). Kiam referenco al objekto ne estas utiligita dum plilongigita tempodaŭro, la rubkolektisto ofte vokos tiun funkcion.
La rubkolektanto aŭtomate liberigas kontrolitajn rimedojn, sed se vi volas liberigi nebezonatajn rimedojn kiel dosiero-tenilojn, datumkonektojn, ktp, vi devas eksplicite efektivigi la finfinan funkcion.
22. Faru distingon inter fini blokoj kaj fini.
La finita bloko estas vokita post kiam la try-and-catch blokoj estis kompletigitaj ĉar ĝi estas necesa por escepttraktado. La bloko de kodo estas efektivigita sendepende de ĉu la escepto estis kaptita. La kodo de la bloko estas ĝenerale pli pura.
La finita metodo estas alvokita tuj antaŭ rubkolekto. La ĉefaj respondecoj de la finpretigita metodo estas malbari neadministritan kodon, kiu aŭtomate ekfunkciiĝas kiam ajn okazo ne estas revokita.
23. Priskribu la C# disponi-metodon detale.
La funkcio disponof() liberigas la neuzatajn rimedojn de objekto. Neuzataj rimedoj, kiel dosieroj, datumkonektoj kaj tiel plu. Ĉi tiu funkcio estas specifita en la interfaco IDisposable, kiu estas efektivigita de la klaso deklarante la interfacon IDisposable korpon.
La disponfunkcio ne estas vokita aŭtomate; la programisto devas efektivigi ĝin permane por efika utiligo de rimedoj.
24. Kio estas C#-Metoda Superŝarĝado? Klarigi.
Metodotroŝarĝado estas tipa aliro en C# kiu estas uzata por konstrui kelkajn metodojn kun la sama nomo kaj precizigitaj subskriboj. Ĉi tiu proceduro estas ripetita kun la sama klaso.
Kiam la proceduro de superŝarĝado de metodo estas kompleta, la kompililo komencas operaciojn por voki specifitajn agojn bazitajn sur la metodotroŝarĝado.
25. Kio estas la distingo inter nurlegebla kaj konstantoj?
Konstantaj variabloj estas deklaritaj kaj pravigitaj dum kompilo. Post tiam, ĉi tiu valoro ne povas esti ŝanĝita. Aliflanke, nurlegebla estas uzata post kiam valoro estis asignita ĉe rultempo.
26. Kio estas Uzanta Kontrolo kaj Propra Kontrolo?
Kompilita kodo estas uzata por disvolvi kutimajn kontrolojn. Ĉi tiuj povas esti inkluzivitaj en la ilujo kaj estas facile uzeblaj. Trenante kaj faligante ĉi tiujn kontrolojn, programistoj povas inkluzivi ilin en siaj retformularoj.
Uzantkontroloj kaj ASP-inkluditaj dosieroj estas sufiĉe similaj. Ili ankaŭ estas simplaj por fari. Uzantkontroloj, aliflanke, ne povas esti aldonitaj al la ilujo. Ili ankaŭ ne povas esti tiritaj kaj faligitaj de ĝi.
27. En C#, kio estas multielsenda delegito?
Multirolantardelegito konservas referencojn aŭ adresojn al pluraj funkcioj samtempe. Kiam ni alvokos la multirolanta delegiton, ĝi ankaŭ alvokos ĉiujn aliajn funkciojn al kiuj ĝi rilatas. Por voki plurajn metodojn, uzu la tutan metodon subskribon, same kiel la delegito. Kiel ekzemplo:
28. Kio ĝuste estas objekta kunigo en C#?
Objektkunigo estas dezajnotekniko en programaro kiu reciklas aferojn prefere ol rekonstrui ilin. Ĝi plenumas tion stokante elektitajn erojn en naĝejo kaj disponigante ilin por uzado kiam aplikaĵo petas ilin. Ĉi tiu proceduro plibonigas efikecon reduktante nenecesan objektogeneradon.
29. Kio ĝuste estas generikoj en C#.NET?
Generics estas uzataj por krei reuzeblajn kodklasojn por redukti kodredundon, plibonigi tipsekurecon kaj plibonigi rapidecon. Ni povas konstrui kolektoklasojn kun generikoj.
En la Sistemo, senmarka nomspaco devus esti utiligita anstataŭ klasoj kiel ArrayList. Nomspaco por kolektoj. La uzo de parametrizitaj tipoj estas instigita de generikoj.
30. Ĉu estas farebla superregi privatan virtualan metodon?
Privata virtuala metodo ne povas esti anstataŭita ĉar ĝi estas privata al la klaso kaj ne alireblas de ekster ĝi.
31. Diferencigi inter metodo superŝarĝado kaj metodo superregado en C#?
Metoda superregado estas la procezo ŝanĝi la fundamentan difinon de derivita klaso. La metodoj de la derivita klaso poste kondutas alimaniere kiel rezulto de ĉi tiu strategio.
Metodotroŝarĝado, aliflanke, povas esti priskribita kiel la ago de generado de multaj metodoj kun la sama nomo sed apartaj signaturoj sub la sama klaso.
32. En C#, kio estas la distingo inter String kaj StringBuilder?
Ĉena objekto estas neŝanĝebla, kio signifas, ke ĝi ne povas esti ŝanĝita post kiam ĝi estas kreita. Ĉiu provo ŝanĝi la ĉenbjekton rezultigos la kreadon de nova ĉenobjekto.
Ŝnura konstruaĵobjekto, aliflanke, estas modebla kaj povas esti ŝanĝita kiel la programisto vidas konvene.
33. Kio precize estas delegitoj?
En C++, delegitoj estas principe la samaj kiel funkciomontriloj. La sola distingo inter la du estas ke delegitoj estas tip-sekuraj dum funkciomontriloj ne estas. Delegitoj estas necesaj ĉar ili ebligas la konstruadon de ĝeneralaj tip-sekuraj funkcioj.
34. Kiam vi devus uzi multfadenadon en C# kaj kiam vi devus eviti ĝin?
Multithreading, ofte konata kiel surfadenado, estas efika aliro por pliigi la rapidecon de programo en kiu multaj agadoj efektivigas samtempe. Ĝi ebligas diversajn fadenojn ekzekuti sendepende, prefere ol atendi ke la antaŭa paŝo estos kompletigita. Ĉi tio havas la kapablon pliigi la ritmon de programo.
Tamen, kiam pluraj el la procezoj de la programo estas interkonektitaj, multifadenado ne estas rekomendita. Ekzemple, se Paŝo B estis dependa de Paŝo A estanta kompletigita unue, multifadenado kaŭzus spektaklozorgojn kaj programardifektojn. Fadenigado iĝas ĉiam pli sentema kiam programo evoluas en komplekseco.
35. En C#, kio estas multielsenda delegito?
Multirolanta delegito en C#, kontraste al baza delegito, rilatas al multaj celmetodoj. Kiam multirolanta delegito estas utiligita, ĉiuj funkcioj indikitaj fare de la delegito estas nomitaj. Ili estas efektivigitaj helpe de la klaso MulticastDelegate de la sistemo.
36. En C#, kio estas la distingo inter malfrua ligado kaj frua ligado?
- Frua ligado okazas en kompiltempo, dum malfrua ligado okazas dum rultempo.
- Malfrua ligado ofte estas pli malrapida ol frua ligado ĉar ĝi okazas ĉe rultempo.
- Kontraste al malfrua ligado, kiu uzas la objekton por solvi metodovokojn, frua ligado solvas metodovokojn uzante klasinformojn.
37. Diferencigi inter Directcast kaj Ctype?
La speco de objekto, kiu postulas la rultempan tipon kongrui kun la specifita tipo en DirectCast, estas konvertita per DirectCast.
Kiam konvertiĝo estas specifita inter esprimo kaj tipo, Ctype estas utiligita.
38. Kiel estas HashSet uzata en C#?
En C#, HashSet estas neordigita kolekto de apartaj valoroj. Ĝenerale, ĝi estas uzata por malhelpi duplikatajn elementojn esti enmetitaj en kolekton, kaj ĝi funkcias pli bone ol listo ĉe ĉi tiu tasko.
La klaso HashSet, kiu devenas de la Sistemo, estas uzata por efektivigi ĝin.
39. Bonvolu klarigi Thread Pooling en C#.
En C#, fadena aro estas kolekto de fadenoj. Ĉi tiuj fadenoj estas uzataj por fari taskojn sen malhelpi la funkciecon de la primara fadeno. Fadeno en fadena naĝejo revenas al la fadena naĝejo kiam ĝi finiĝis.
La System-klaso enhavas klasojn, kiuj pritraktas la fadenon en la fadena grupo kaj ĝiajn agojn. Fadenigado. ThreadPool estas nomspaco.
40. Kio estas la distingo inter la ŝlosilvortoj Const kaj ReadOnly en C#?
- ReadOnly ne povas esti deklarita ene de la metodo, dum Const povas.
- Const estas kompiltempa konstanto, dum ReadOnly estas rultempa konstanto.
- Nurlegeblaj valoroj povas esti ŝanĝitaj, sed Const-valoroj ne povas.
41. Kiajn detalojn pri la C# XSD-dosiero vi povas provizi?
XSD signifas XML Schema Definition. Se neniu XSD-dosiero estas ligita kun la XML-dosiero, ĝi povas havi iujn ajn atributojn, elementojn kaj etikedojn. La XSD-dosiero disponigas kadron por la XML-dosiero, determinante kiuj komponentoj kaj atributoj devus ĉeesti en la XML-dosiero same kiel ilia ordo.
42. Kion signifas por vi Get and Set Accessor-propraĵoj?
En C#, Get kaj Set nomis akcesoraĵojn ĉar ili estas faritaj per propraĵoj. Nemoveblaĵo permesas legi kaj skribi al la valoro de privata kampo. Tiaj privataj kampoj estas alireblaj per akcesoraĵoj.
Dum la Get-posedaĵo estas uzata por redoni la valoron de posedaĵo, la Agordu-posedaĵo estas uzata por agordi la valoron.
43. Kio ĝuste estas dependeca injekto en C#?
Dependeca injekto (DI) estas dezajnotekniko en C# kiu kutimas krei loze ligitan programadon. Ĉi tiu proceduro transdonas la kreadon kaj ligadon de dependaj objektoj ekster la klaso sur kiu ili dependas. La ĉefa celo estas fari estontajn kodajn modifojn pli regeblaj.
konkludo
C# estas la ĉefa programlingvo, kiu estas uzata en ĉiuj altnivelaj programlingvoj. C#-programistoj estas tre postulataj kaj povas trovi allogajn karierajn perspektivojn en industrioj kiel antaŭa evoluado, malantaŭa programado kaj aplikaĵa disvolviĝo. Kaj ĉar Microsoft subtenas ĝin, la populareco de C# nur kreskos.
La supre menciitaj estas la plej decidaj C#-intervjuaj demandoj por spertaj profesiuloj kaj komencantoj. Vidu La Intervjuserio de Hashdork por helpo pri preparado de intervjuo.
Lasi Respondon