Taula de continguts[Amaga][Espectacle]
- 1. Què és exactament C#?
- 2. Què distingeix C# de C?
- 3. Què és exactament una classe?
- 4. Què és exactament un objecte?
- 5. Quina és la distinció entre els termes estàtic, públic i buit?
- 6. Definir Constructors.
- 7. Què és C# a la recollida d'escombraries?
- 8. Què significa exactament l'estructura en C#?
- 9. Com es compila el codi C#?
- 10. Descriu clarament les diferents classes de C#.
- 11. Què són exactament els Jagged Arrays?
- 12. Quina diferència hi ha entre els paràmetres out i ref?
- 13. En C#, què és un destructor?
- 14. En C#, què és un indexador?
- 15. Quina diferència hi ha entre el codi gestionat i el no gestionat?
- 16. Descriu la serialització.
- 17. En C#, com varien els camps i les propietats?
- 18. Com podeu descriure l'ús de declaracions en C# amb detall?
- 19. Com implementaries nombroses interfícies amb el mateix nom de mètode a la mateixa classe?
- 20. En C#, quina és la diferència entre Task i Thread?
- 21. Quina és la funció de finalització en C#?
- 22. Fes una distinció entre blocs de finalització i finalització.
- 23. Descriu detalladament el mètode d'eliminació de C#.
- 24. Què és la sobrecàrrega del mètode C#? Dilucidar.
- 25. Quina és la distinció entre només lectura i constants?
- 26. Què són el control d'usuari i el control personalitzat?
- 27. En C#, què és un delegat multicast?
- 28. Què és exactament l'agrupació d'objectes en C#?
- 29. Què són exactament els genèrics en C#.NET?
- 30. És factible anul·lar un mètode virtual privat?
- 31. Diferenciar entre la sobrecàrrega de mètodes i la substitució de mètodes en C#?
- 32. En C#, quina és la diferència entre String i StringBuilder?
- 33. Què són exactament els delegats?
- 34. Quan s'ha d'utilitzar el multithreading en C# i quan l'ha d'evitar?
- 35. En C#, què és un delegat multicast?
- 36. En C#, quina és la distinció entre l'enquadernació tardana i l'enquadernació primerenca?
- 37. Diferenciar entre Directcast i Ctype?
- 38. Com s'utilitza HashSet en C#?
- 39. Expliqueu l'agrupació de fils en C#.
- 40. Quina diferència hi ha entre les paraules clau Const i ReadOnly en C#?
- 41. Quins detalls sobre el fitxer XSD C# podeu proporcionar?
- 42. Què signifiquen per a vostè les propietats Get and Set Accessor?
- 43. Què és exactament la injecció de dependències en C#?
- Conclusió
C# (abans conegut com C sharp) és un llenguatge de programació orientat a objectes que els desenvolupadors utilitzen freqüentment per fer diverses activitats i assolir múltiples objectius.
Els llenguatges de programació orientats a objectes, com ara C++, Python i Java, tenen una varietat de sabors. Aquests llenguatges de programació estan dissenyats per funcionar dins d'un marc determinat. De la mateixa manera, C# es crea i es desenvolupa per a un marc específic, és a dir, NET.
El framework .NET va ser creat per Microsoft. Proporciona una àmplia plataforma per desenvolupar aplicacions, declaracions, instruccions d'aplicació, etc. C# es pot utilitzar per al desenvolupament web, jocs, aplicacions mòbils, aplicacions de Windows i altres projectes similars.
Amb aquests avantatges, l'ús de C# s'ha ampliat i s'ha duplicat la necessitat d'especialistes que el puguin utilitzar amb precisió. Perquè C# és tan popular llenguatge de programació, multitud de grans i petites empreses basen els seus productes en això.
Per tant, practiqueu preguntes C# de nivell bàsic i avançat per superar les entrevistes.
1. Què és exactament C#?
Microsoft C# és un programa contemporani de propòsit general, programació orientada a objectes llenguatge. C# està pensat per a la Common Language Infrastructure (CLI), que inclou codi executable i un entorn d'execució que permet l'ús de nombrosos llenguatges d'alt nivell en diversos sistemes informàtics i arquitectures.
2. Què distingeix C# de C?
El C sol ser conegut com a llenguatge procedimental, mentre que C# està més orientat a objectes. La distinció principal és que C# permet la recollida automatitzada d'escombraries mitjançant Common Language Runtime (CLR), mentre que C no ho fa. C# requereix que s'executi el framework.NET, mentre que C és un llenguatge independent de la plataforma.
3. Què és exactament una classe?
Una classe serveix com a plantilla per construir objectes. Juntament amb les tècniques, té atributs. A partir d'una sola classe, podem produir diverses instàncies d'un objecte.
4. Què és exactament un objecte?
Una instància de classe coneguda com a objecte és com accedim a les funcionalitats d'una classe. Per construir un objecte, podem utilitzar la paraula clau "new". S'emmagatzemen les funcions, els membres de les dades i el comportament d'una classe que produeix un objecte a la memòria.
5. Quina és la distinció entre els termes estàtic, públic i buit?
A qualsevol part del programa es pot accedir a variables definides públicament. Es pot accedir a les variables estàtiques globalment sense necessitat de crear una instància de classe. En C#, s'utilitza un modificador de tipus anomenat Void per indicar el tipus de retorn d'un mètode.
6. Definir Constructors.
Un constructor és una funció membre específica de classe. Quan es forma un objecte, el constructor es crida automàticament. La classe construeix tots els valors dels membres de dades a mesura que s'inicialitza.
7. Què és C# a la recollida d'escombraries?
El procés de neteja de la memòria que ha estat ocupada per elements no desitjats es coneix com a recollida d'escombraries. Una certa quantitat de memòria s'assigna automàticament a un objecte de classe quan es crea a la memòria dinàmica. Ara que heu acabat de treballar en l'element, l'espai de memòria que ocupava anteriorment es desaprofita. S'ha d'alliberar la memòria.
8. Què significa exactament l'estructura en C#?
En C#, una estructura és un tipus de dades que es compon de nombrosos tipus de dades, com ara mètodes, camps, constructors, constants, propietats, indexadors, operadors i fins i tot altres estructures. Una estructura ajuda a consolidar molts tipus de dades en una sola unitat. D'aquesta manera, són anàlegs als cursos. Les estructures són tipus de valor, mentre que les classes són tipus de referència.
9. Com es compila el codi C#?
Quan es crea un projecte, el codi font C# es compila en un llenguatge intermedi (IL). IL és una col·lecció d'instruccions que genera codi màquina per a l'execució en un processador de màquina. El codi s'envia des del preprocessador al compilador, després a l'assemblador i finalment a l'enllaçador en quatre etapes.
10. Descriu clarament les diferents classes de C#.
- Estàtica: és el tipus de classe que no es pot instanciar, per tant, no podem utilitzar la paraula clau new per fer-ne un objecte, però podem trucar directament als membres de la classe utilitzant el seu nom de classe.
- Resum: per definir classes abstractes, utilitzeu la paraula clau abstracte. No es poden crear objectes per a classes abstractes. S'ha d'heretar en una subclasse si el voleu utilitzar. Es permeten definicions senzilles de mètodes abstractes i no abstractes dins d'una classe Abstract.
- Parcial: aquesta classe us permet separar les vostres propietats, mètodes i esdeveniments en diversos fitxers font, que es combinen posteriorment en una sola classe en el moment de la creació.
- Segellat: una classe segellada no es pot heretar d'una altra classe i té característiques limitades. No es poden afegir modificadors d'accés a la classe segellada.
11. Què són exactament els Jagged Arrays?
Una matriu amb elements de matriu s'anomena matriu irregular. Els elements de Jagged Arrays poden tenir moltes formes i mides.
12. Quina diferència hi ha entre els paràmetres out i ref?
Quan es dóna un argument com a referència, el paràmetre s'ha d'inicialitzar abans de passar al mètode. Un paràmetre de sortida, d'altra banda, no necessita ser inicialitzat abans de subministrar-se a un mètode.
13. En C#, què és un destructor?
Un destructor és un tipus de mètode en C# que forma part d'una classe. La funció principal d'un destructor és eliminar instàncies d'una classe quan ja no són necessàries per alliberar memòria. Els destructors de vegades es coneixen com a finalitzadors.
14. En C#, què és un indexador?
Els indexadors s'utilitzen en C# per trobar instàncies d'una classe o estructura. Per tant, es pot accedir als valors indexats de manera similar a una matriu, però sense haver de declarar explícitament un tipus o un membre d'instància.
15. Quina diferència hi ha entre el codi gestionat i el no gestionat?
El codi gestionat us permet executar codi al framework.NET en un entorn d'execució CLR gestionat.
El codi controlat s'executa a l'entorn d'execució gestionat en lloc del sistema operatiu. Ofereix una varietat de serveis, com ara un col·lector d'escombraries, gestió d'excepcions, etc.
El codi no gestionat és codi que no s'executa al CLR i que funciona fora del framework.NET. No ofereixen serveis lingüístics d'alt nivell i, per tant, funcionen sense ells. C++ n'és un exemple.
16. Descriu la serialització.
S'ha de crear un flux de bytes a partir de l'element per transferir-lo a una xarxa. La serialització és l'acte de transformar un element en un flux de bytes. La interfície de serialització s'ha d'implementar perquè un element es pugui serialitzar. El contrari de construir un objecte a partir d'un flux de bytes s'anomena deserialització.
17. En C#, com varien els camps i les propietats?
Un camp és un membre de classe o un objecte de qualsevol tipus que serveix com a ubicació per emmagatzemar dades, mentre que una propietat és un membre de classe que ofereix un mètode per llegir, escriure i calcular el valor d'un camp privat.
18. Com podeu descriure l'ús de declaracions en C# amb detall?
La instrucció using s'utilitza per restringir l'ús d'un o més recursos dins de l'aplicació. Els recursos es consumeixen i alliberen de manera constant.
La tasca principal d'aquesta declaració és gestionar els recursos no desitjats i alliberar-los automàticament. Un cop format l'objecte que està utilitzant el recurs, assegureu-vos que es crida a la funció de disposar de l'objecte per alliberar els recursos requerits per aquest objecte; aquí és on l'ús de declaracions és útil.
19. Com implementaries nombroses interfícies amb el mateix nom de mètode a la mateixa classe?
Per implementar diverses interfícies amb el mateix nom de mètode, eviteu implementar-les dins del cos de la funció. En lloc d'això, proporcionareu el nom de la interfície directament al cos del mètode. El compilador reconeixerà a quins mètodes d'interfície s'estan fent referència, abordant el problema.
20. En C#, quina és la diferència entre Task i Thread?
Un fil és un fil del sistema operatiu real amb els seus propis recursos de pila i nucli. El fil proporciona el major control. El fil us permet Avortar (), Suspendre () o Reprendre (). Es pot observar l'estat d'un fil o es poden definir els seus atributs, com ara la mida de la pila, l'estat de l'apartament i la cultura. El CLR manté un conjunt de fils embolcallats per ThreadPool.
La Task Parallel Library té una classe anomenada Task. A diferència del ThreadPool, la tasca no té el seu propi fil del sistema operatiu. Les tasques les executa el TaskScheduler, tot i que el programador predeterminat l'executa el ThreadPool. És possible ser notificat quan una tasca es completa i obtenir un resultat.
21. Quina és la funció de finalització en C#?
La classe d'objecte que s'utilitza per a les accions de neteja defineix la funció finalize (). Quan una referència a un objecte no s'utilitza durant un període de temps prolongat, el col·lector d'escombraries sovint crida a aquesta funció.
El col·lector d'escombraries allibera automàticament els recursos controlats, però si voleu alliberar recursos innecessaris, com ara identificadors de fitxers, connexions de dades, etc., heu d'implementar explícitament la funció de finalització.
22. Fes una distinció entre blocs de finalització i finalització.
El bloc acabat es crida després que s'hagin completat els blocs de prova i captura, ja que és necessari per al maneig d'excepcions. El bloc de codi s'executa independentment de si s'ha detectat l'excepció. El codi del bloc és generalment més net.
El mètode finalize s'invoca just abans de la recollida d'escombraries. Les principals responsabilitats del mètode finalitzat són esborrar el codi no gestionat, que s'activa automàticament cada vegada que no es torna a cridar una instància.
23. Descriu detalladament el mètode d'eliminació de C#.
La funció disposaof() allibera els recursos no utilitzats d'un objecte. Recursos no utilitzats, com ara fitxers, connexions de dades, etc. Aquesta funció s'especifica a la interfície IDisposable, que la classe implementa mitjançant la declaració del cos de la interfície IDisposable.
La funció disposa no es crida automàticament; el programador l'ha d'implementar manualment per a una utilització efectiva dels recursos.
24. Què és la sobrecàrrega del mètode C#? Dilucidar.
La sobrecàrrega de mètodes és un enfocament típic en C# que s'utilitza per construir una sèrie de mètodes amb el mateix nom i signatures especificades. Aquest procediment es repeteix amb la mateixa classe.
Quan s'ha completat el procediment de sobrecàrrega del mètode, el compilador comença les operacions per cridar accions especificades basades en la sobrecàrrega del mètode.
25. Quina és la distinció entre només lectura i constants?
Les variables constants es declaren i s'inicialitzen durant la compilació. Després d'això, aquest valor no es pot modificar. D'altra banda, només s'utilitza lectura un cop s'ha assignat un valor en temps d'execució.
26. Què són el control d'usuari i el control personalitzat?
El codi compilat s'utilitza per desenvolupar controls personalitzats. Es poden incloure a la caixa d'eines i són fàcils d'utilitzar. Arrossegant i deixant anar aquests controls, els desenvolupadors poden incloure'ls als seus formularis web.
Els controls d'usuari i els fitxers inclosos en ASP són força similars. També són senzills de fer. Els controls d'usuari, en canvi, no es poden afegir a la caixa d'eines. Tampoc es poden treure i deixar caure d'ell.
27. En C#, què és un delegat multicast?
Un delegat de multidifusió manté referències o adreces a diverses funcions al mateix temps. Quan invoquem el delegat de multidifusió, també invocarà totes les altres funcions a les quals es refereix. Per cridar diversos mètodes, utilitzeu tota la signatura del mètode, igual que el delegat. Com un exemple:
28. Què és exactament l'agrupació d'objectes en C#?
La agrupació d'objectes és una tècnica de disseny del programari que recicla les coses en lloc de reconstruir-les. Ho aconsegueix emmagatzemant els elements escollits en un grup i posant-los a disposició per al seu ús quan una aplicació els sol·liciti. Aquest procediment millora el rendiment reduint la generació d'objectes innecessaris.
29. Què són exactament els genèrics en C#.NET?
Els genèrics s'utilitzen per crear classes de codi reutilitzables per tal de reduir la redundància del codi, millorar la seguretat del tipus i millorar la velocitat. Podem construir classes de col·lecció amb genèrics.
Al sistema, s'hauria d'utilitzar un espai de noms genèric en lloc de classes com ArrayList. Espai de noms per a col·leccions. Els genèrics fomenten l'ús de tipus parametritzats.
30. És factible anul·lar un mètode virtual privat?
Un mètode virtual privat no es pot anul·lar ja que és privat per a la classe i no es pot accedir des de fora d'ella.
31. Diferenciar entre la sobrecàrrega de mètodes i la substitució de mètodes en C#?
La substitució del mètode és el procés d'alterar la definició fonamental d'una classe derivada. Els mètodes de la classe derivada finalment es comporten de manera diferent com a resultat d'aquesta estratègia.
La sobrecàrrega de mètodes, d'altra banda, es pot descriure com l'acte de generar molts mètodes amb el mateix nom però signatures diferents sota la mateixa classe.
32. En C#, quina és la diferència entre String i StringBuilder?
Un objecte de cadena és immutable, el que significa que no es pot alterar un cop s'ha creat. Qualsevol intent de canviar l'objecte de cadena donarà lloc a la creació d'un nou objecte de cadena.
Un objecte de generador de cordes, en canvi, és mal·leable i es pot alterar segons el desenvolupador ho consideri adequat.
33. Què són exactament els delegats?
En C++, els delegats són fonamentalment els mateixos que els punters de funció. L'única distinció entre els dos és que els delegats són segurs per a tipus, mentre que els punters de funció no ho són. Els delegats són necessaris perquè permeten la construcció de funcions genèriques de tipus segur.
34. Quan s'ha d'utilitzar el multithreading en C# i quan l'ha d'evitar?
El multithreading, sovint conegut com a threading, és un enfocament eficaç per augmentar la velocitat d'un programa en què s'executen nombroses activitats simultàniament. Permet que diversos fils s'executin de manera independent, en lloc d'esperar que es completi el pas anterior. Això té la capacitat d'augmentar el ritme d'un programa.
No obstant això, quan diversos processos del programa estan interconnectats, no es recomana el multithreading. Per exemple, si el pas B depengués que el pas A s'hagués completat primer, el multiprocés causaria problemes de rendiment i defectes de programari. El threading es fa cada cop més sensible a mesura que un programa es desenvolupa en complexitat.
35. En C#, què és un delegat multicast?
Un delegat de multidifusió en C#, a diferència d'un delegat bàsic, fa referència a nombrosos mètodes de destinació. Quan s'utilitza un delegat de multidifusió, es criden totes les funcions a les quals assenyala el delegat. S'implementen amb l'ajuda de la classe MulticastDelegate del sistema.
36. En C#, quina és la distinció entre l'enquadernació tardana i l'enquadernació primerenca?
- L'enllaç primerenc té lloc en temps de compilació, mentre que l'enllaç tardà es fa durant el temps d'execució.
- La vinculació tardana sovint és més lenta que la vinculació primerenca, ja que es produeix en temps d'execució.
- A diferència de la vinculació tardana, que utilitza l'objecte per resoldre les trucades de mètodes, la vinculació primerenca resol les trucades de mètodes utilitzant informació de classe.
37. Diferenciar entre Directcast i Ctype?
El tipus d'objecte que requereix que el tipus d'execució coincideixi amb el tipus especificat a DirectCast es converteix mitjançant DirectCast.
Quan s'especifica una conversió entre una expressió i un tipus, s'utilitza Ctype.
38. Com s'utilitza HashSet en C#?
En C#, un HashSet és una col·lecció no ordenada de valors diferents. En general, s'utilitza per evitar que s'insereixin elements duplicats en una col·lecció, i funciona millor que una llista en aquesta tasca.
La classe HashSet, que descendeix del System, s'utilitza per implementar-la.
39. Expliqueu l'agrupació de fils en C#.
En C#, un grup de fils és una col·lecció de fils. Aquests fils s'utilitzen per fer tasques sense interferir amb la funcionalitat del fil principal. Un fil d'un grup de fils torna al grup de fils quan s'ha acabat d'executar.
La classe System conté classes que gestionen el fil del grup de fils i les seves accions. Enfilar. ThreadPool és un espai de noms.
40. Quina diferència hi ha entre les paraules clau Const i ReadOnly en C#?
- ReadOnly no es pot declarar dins del mètode, mentre que Const sí.
- Const és una constant en temps de compilació, mentre que ReadOnly és una constant en temps d'execució.
- Els valors de només lectura es poden alterar, però els valors Const no.
41. Quins detalls sobre el fitxer XSD C# podeu proporcionar?
XSD significa XML Schema Definition. Si no hi ha cap fitxer XSD connectat amb el fitxer XML, pot tenir qualsevol atribut, element i etiqueta. El fitxer XSD proporciona un marc per al fitxer XML, determinant quins components i atributs haurien d'estar presents al fitxer XML, així com el seu ordre.
42. Què signifiquen per a vostè les propietats Get and Set Accessor?
En C#, Get i Set s'han denominat descriptors d'accés ja que es fan amb propietats. Una propietat permet llegir i escriure el valor d'un camp privat. S'accedeix a aquests camps privats mitjançant d'accessoris.
Mentre que la propietat Get s'utilitza per retornar el valor d'una propietat, la propietat Set s'utilitza per establir el valor.
43. Què és exactament la injecció de dependències en C#?
La injecció de dependències (DI) és una tècnica de disseny en C# que s'utilitza per crear programació poc enllaçada. Aquest procediment transfereix la creació i l'enllaç d'objectes dependents fora de la classe en què es basen. L'objectiu principal és fer que les modificacions futures del codi siguin més manejables.
Conclusió
C# és el llenguatge de programació principal que s'utilitza en tots els llenguatges de programació de nivell superior. Els desenvolupadors de C# tenen una gran demanda i poden trobar perspectives professionals atractives en indústries com ara el desenvolupament frontal, la programació de fons i el desenvolupament d'aplicacions. I com que Microsoft ho admet, la popularitat de C# només augmentarà.
Les esmentades anteriorment són les preguntes d'entrevista C# més crucials per a professionals experimentats i principiants. Mireu Sèrie d'entrevistes de Hashdork per ajudar en la preparació de l'entrevista.
Deixa un comentari