Índice analítico[Ocultar][Mostrar]
- 1. Que é exactamente C#?
- 2. Que distingue C# de C?
- 3. Que é exactamente unha clase?
- 4. Que é exactamente un obxecto?
- 5. Cal é a distinción entre os termos estático, público e baleiro?
- 6. Definir Construtores.
- 7. Que é C# na recollida de lixo?
- 8. Que significa exactamente estrutura en C#?
- 9. Como se compila o código C#?
- 10. Describe claramente as diferentes clases de C#.
- 11. Que son exactamente os Jagged Arrays?
- 12. Cal é a distinción entre os parámetros out e ref?
- 13. En C#, que é un destrutor?
- 14. En C#, que é un indexador?
- 15. Cal é a diferenza entre o código xestionado e o non xestionado?
- 16. Describe a serialización.
- 17. En C#, como varían os campos e as propiedades entre si?
- 18. Como pode describir o uso de instrucións en C# en detalle?
- 19. Como implementarías numerosas interfaces co mesmo nome de método na mesma clase?
- 20. En C#, cal é a distinción entre Task e Thread?
- 21. Cal é a función de finalización en C#?
- 22. Fai unha distinción entre bloques de finalizar e finalizar.
- 23. Describe o método de eliminación de C# en detalle.
- 24. Que é a sobrecarga do método C#? Dilucidar.
- 25. Cal é a distinción entre só lectura e constantes?
- 26. Que son o control de usuario e o control personalizado?
- 27. En C#, que é un delegado de multidifusión?
- 28. Que é exactamente a agrupación de obxectos en C#?
- 29. Que son exactamente os xenéricos en C#.NET?
- 30. É factible anular un método virtual privado?
- 31. Diferenciar entre a sobrecarga de métodos e a anulación de métodos en C#?
- 32. En C#, cal é a distinción entre String e StringBuilder?
- 33. Que son exactamente os delegados?
- 34. Cando deberías utilizar o multithreading en C# e cando deberías evitalo?
- 35. En C#, que é un delegado de multidifusión?
- 36. En C#, cal é a distinción entre a unión tardía e a unión temperá?
- 37. Diferenciar entre Directcast e Ctype?
- 38. Como se utiliza HashSet en C#?
- 39. Explica a agrupación de subprocesos en C#.
- 40. Cal é a distinción entre as palabras clave Const e ReadOnly en C#?
- 41. Que detalles sobre o ficheiro C# XSD pode proporcionar?
- 42. Que significan para vostede as propiedades de Get and Set Accessor?
- 43. Que é exactamente a inxección de dependencias en C#?
- Conclusión
C# (anteriormente coñecido como C sharp) é unha linguaxe de programación orientada a obxectos que os desenvolvedores usan con frecuencia para realizar varias actividades e acadar múltiples obxectivos.
As linguaxes de programación orientadas a obxectos, como C++, Python e Java, teñen unha variedade de sabores. Estas linguaxes de programación están deseñadas para funcionar dentro dun marco determinado. Do mesmo xeito, C# créase e desenvólvese para un marco específico, a saber, NET.
O framework .NET foi creado por Microsoft. Ofrece unha ampla plataforma para desenvolver aplicacións, declaracións, instrucións de aplicación, etc. C# pódese usar para o desenvolvemento web, xogos, aplicacións móbiles, aplicacións de Windows e outros proxectos similares.
Con tales vantaxes, o uso de C# ampliouse e duplicouse a necesidade de especialistas que poidan utilizalo con precisión. Porque C# é tan popular linguaxe de programación, multitude de grandes e pequenas firmas basean nela os seus produtos.
Entón, practica preguntas de nivel básico e avanzado de C# para superar as entrevistas.
1. Que é exactamente C#?
Microsoft C# é un programa contemporáneo de propósito xeral, programación orientada a obxectos lingua. C# está pensado para a Common Language Infrastructure (CLI), que comprende código executable e un ambiente de execución que permite o uso de numerosas linguaxes de alto nivel en diversos sistemas informáticos e arquitecturas.
2. Que distingue C# de C?
O C coñécese normalmente como linguaxe procedimental, mentres que C# está máis orientado a obxectos. A principal distinción é que C# permite a recollida de lixo automatizada a través do Common Language Runtime (CLR), mentres que C non o fai. C# require o framework.NET para executarse, mentres que C é unha linguaxe independente da plataforma.
3. Que é exactamente unha clase?
Unha clase serve como modelo para construír obxectos. Xunto coas técnicas, ten atributos. A partir dunha única clase, podemos producir varias instancias dun obxecto.
4. Que é exactamente un obxecto?
Unha instancia de clase coñecida como obxecto é como accedemos ás funcionalidades dunha clase. Para construír un obxecto, podemos usar a palabra clave "new". Almacénanse as funcións, os membros de datos e o comportamento dunha clase que produce un obxecto na memoria.
5. Cal é a distinción entre os termos estático, público e baleiro?
En calquera lugar do programa pode acceder a variables definidas publicamente. Pódese acceder ás variables estáticas globalmente sen necesidade de construír unha instancia de clase. En C#, úsase un modificador de tipo chamado Void para indicar o tipo de retorno dun método.
6. Definir Construtores.
Un construtor é unha función membro específica da clase. Cando se forma un obxecto, chámase automaticamente ao construtor. A clase constrúe todos os valores dos membros de datos a medida que se inicializa.
7. Que é C# na recollida de lixo?
O proceso de limpeza da memoria que foi ocupada por elementos non desexados coñécese como recollida de lixo. Unha certa cantidade de memoria asígnase automaticamente a un obxecto de clase cando se crea na memoria do montón. Agora que remataches de traballar no elemento, desperdiciarase o espazo de memoria que ocupaba anteriormente. Hai que liberar a memoria.
8. Que significa exactamente estrutura en C#?
En C#, unha estrutura é un tipo de datos que está formado por numerosos tipos de datos, como métodos, campos, construtores, constantes, propiedades, indexadores, operadores e incluso outras estruturas. Unha estrutura axuda na consolidación de moitos tipos de datos nunha única unidade. Deste xeito, son análogos aos cursos. As estruturas son tipos de valor, mentres que as clases son tipos de referencia.
9. Como se compila o código C#?
Cando se crea un proxecto, o código fonte C# compílase en Intermediate Language (IL). IL é unha colección de instrucións que xera código de máquina para a súa execución nun procesador de máquina. O código envíase desde o preprocesador ao compilador, despois ao ensamblador e, finalmente, ao enlazador en catro etapas.
10. Describe claramente as diferentes clases de C#.
- Estática: é o tipo de clase que non se pode instanciar, polo tanto, non podemos usar a nova palabra clave para facer un obxecto dela, pero podemos chamar directamente aos membros da clase usando o seu nome de clase.
- Resumo: para definir clases abstractas, use a palabra clave abstracta. Non se poden crear obxectos para clases abstractas. Ten que ser herdado nunha subclase se queres usalo. Permítense definicións sinxelas de métodos abstractos e non abstractos dentro dunha clase Abstract.
- Parcial: esta clase permítelle separar as súas propiedades, métodos e eventos en varios ficheiros fonte, que posteriormente se combinan nunha única clase no momento da construción.
- Selado: unha clase selada non se pode herdar doutra clase e ten características limitadas. Non se poden engadir modificadores de acceso á clase selada.
11. Que son exactamente os Jagged Arrays?
Unha matriz con elementos de matriz denomínase matriz irregular. Os elementos de Jagged Arrays poden ser de moitas formas e tamaños.
12. Cal é a distinción entre os parámetros out e ref?
Ao dar un argumento como referencia, o parámetro debe inicializarse antes de pasarse ao método. Un parámetro de saída, por outra banda, non precisa inicializarse antes de ser subministrado a un método.
13. En C#, que é un destrutor?
Un destrutor é un tipo de método en C# que forma parte dunha clase. A función principal dun destrutor é eliminar instancias dunha clase cando xa non son necesarias para liberar memoria. Os destrutores ás veces son coñecidos como finalizadores.
14. En C#, que é un indexador?
Os indexadores úsanse en C# para atopar instancias dunha clase ou estrutura. Polo tanto, pódese acceder aos valores indexados de forma similar a unha matriz, pero sen ter que declarar explícitamente un membro de tipo ou instancia.
15. Cal é a diferenza entre o código xestionado e o non xestionado?
O código xestionado permítelle executar código no framework.NET nun ambiente de execución CLR xestionado.
O código controlado execútase no ambiente de execución xestionado e non no sistema operativo. Ofrece unha variedade de servizos, como un colector de lixo, manexo de excepcións, etc.
O código non xestionado é código que non se executa no CLR e funciona fóra do framework.NET. Non ofrecen servizos lingüísticos de alto nivel e, polo tanto, funcionan sen eles. C++ é un destes exemplos.
16. Describe a serialización.
Debe crearse un fluxo de bytes a partir do elemento para transferilo a través dunha rede. A serialización é o acto de transformar un elemento nun fluxo de bytes. A interface Serialize debe estar implementada para que un elemento sexa serializable. O contrario de construír un obxecto a partir dun fluxo de bytes chámase deserialización.
17. En C#, como varían os campos e as propiedades entre si?
Un campo é un membro da clase ou un obxecto de calquera tipo que serve como localización para almacenar datos, mentres que unha propiedade é un membro da clase que ofrece un método para ler, escribir e calcular o valor dun campo privado.
18. Como pode describir o uso de instrucións en C# en detalle?
A instrución using úsase para restrinxir o uso dun ou máis recursos dentro da aplicación. Os recursos son consumidos e liberados de forma constante.
O traballo principal desta declaración é xestionar os recursos non desexados e liberalos automaticamente. Unha vez formado o obxecto que está a utilizar o recurso, asegúrate de que se chame á función de eliminación do obxecto para liberar os recursos necesarios por ese obxecto; aquí é onde usar declaracións resulta útil.
19. Como implementarías numerosas interfaces co mesmo nome de método na mesma clase?
Para implementar varias interfaces co mesmo nome de método, evite implementalas dentro do corpo da función. Pola contra, proporcionarías o nome da interface directamente no corpo do método. O compilador recoñecerá a que métodos de interface se fai referencia, abordando o problema.
20. En C#, cal é a distinción entre Task e Thread?
Un fío é un fío real do sistema operativo coa súa propia pila e recursos do núcleo. Thread proporciona o maior control. O fío permíteche Abortar (), Suspender () ou Reanudar (). Pódese observar o estado dun fío ou definir os seus atributos, como o tamaño da pila, o estado do apartamento e a cultura. O CLR mantén un conxunto de fíos envoltos por ThreadPool.
A biblioteca paralela Task ten unha clase chamada Task. A diferenza do ThreadPool, a Tarefa non ten o seu propio fío de sistema operativo. As tarefas son executadas polo TaskScheduler, aínda que o programador predeterminado é executado polo ThreadPool. Pódese ser notificado cando se completa unha Tarefa e obter un resultado.
21. Cal é a función de finalización en C#?
A clase de obxecto que se usa para as accións de limpeza define a función finalize (). Cando unha referencia a un obxecto non se utiliza durante un período prolongado de tempo, o colector de lixo adoita chamar a esta función.
O colector de lixo libera automaticamente recursos controlados, pero se queres liberar recursos innecesarios como identificadores de ficheiros, conexións de datos, etc., debes implementar explícitamente a función de finalización.
22. Fai unha distinción entre bloques de finalizar e finalizar.
O bloque rematado chámase despois de que se completasen os bloques de proba e captura xa que é necesario para o manexo de excepcións. O bloque de código execútase independentemente de que se detectou a excepción. O código do bloque é xeralmente máis limpo.
O método finalize invócase xusto antes da recollida de lixo. As principais responsabilidades do método finalizado son borrar o código non xestionado, que se activa automaticamente cando non se volve chamar unha instancia.
23. Describe o método de eliminación de C# en detalle.
A función disposeof() libera os recursos non utilizados dun obxecto. Recursos non utilizados, como ficheiros, conexións de datos, etc. Esta función especifícase na interface IDisposable, que é implementada pola clase declarando o corpo da interface IDisposable.
A función de eliminación non se chama automaticamente; o programador debe implementala manualmente para unha utilización eficaz dos recursos.
24. Que é a sobrecarga do método C#? Dilucidar.
A sobrecarga de métodos é un enfoque típico en C# que se usa para construír unha serie de métodos co mesmo nome e sinaturas especificadas. Este procedemento repítese coa mesma clase.
Cando se completa o procedemento de sobrecarga de métodos, o compilador comeza as operacións para chamar a accións especificadas en función da sobrecarga do método.
25. Cal é a distinción entre só lectura e constantes?
As variables constantes decláranse e inicialízanse durante a compilación. Despois diso, este valor non se pode modificar. Por outra banda, úsase só lectura unha vez que se asignou un valor no tempo de execución.
26. Que son o control de usuario e o control personalizado?
O código compilado úsase para desenvolver controis personalizados. Estes poden incluírse na caixa de ferramentas e son fáciles de usar. Ao arrastrar e soltar estes controis, os desenvolvedores poden incluílos nos seus formularios web.
Os controis de usuario e os ficheiros incluídos en ASP son bastante similares. Tamén son sinxelos de facer. Os controis de usuario, por outra banda, non se poden engadir á caixa de ferramentas. Tampouco se poden tirar e soltar del.
27. En C#, que é un delegado de multidifusión?
Un delegado de multidifusión mantén referencias ou enderezos a varias funcións ao mesmo tempo. Cando invocamos o delegado de multidifusión, tamén invocará todas as outras funcións ás que se refire. Para chamar a varios métodos, use toda a sinatura do método, igual que o delegado. Como exemplo:
28. Que é exactamente a agrupación de obxectos en C#?
A agrupación de obxectos é unha técnica de deseño no software que recicla cousas en lugar de reconstruílas. Conségueo almacenando os elementos escollidos nun grupo e poñéndoos dispoñibles para o seu uso cando unha aplicación os solicite. Este procedemento mellora o rendemento ao reducir a xeración de obxectos innecesarios.
29. Que son exactamente os xenéricos en C#.NET?
Os xenéricos úsanse para crear clases de código reutilizables co fin de reducir a redundancia do código, mellorar a seguridade do tipo e mellorar a velocidade. Podemos construír clases de colección con xenéricos.
No sistema, debería utilizarse un espazo de nomes xenérico en lugar de clases como ArrayList. Espazo de nomes para coleccións. Os xenéricos fomentan o uso de tipos parametrizados.
30. É factible anular un método virtual privado?
Non se pode anular un método virtual privado xa que é privado para a clase e non se pode acceder desde fóra dela.
31. Diferenciar entre a sobrecarga de métodos e a anulación de métodos en C#?
A substitución do método é o proceso de alterar a definición fundamental dunha clase derivada. Os métodos da clase derivada eventualmente compórtanse de forma diferente como resultado desta estratexia.
A sobrecarga de métodos, por outra banda, pódese describir como o acto de xerar moitos métodos co mesmo nome pero sinaturas distintas baixo a mesma clase.
32. En C#, cal é a distinción entre String e StringBuilder?
Un obxecto de cadea é inmutable, o que significa que non se pode alterar unha vez creado. Calquera intento de cambiar o obxecto de cadea dará lugar á creación dun novo obxecto de cadea.
Un obxecto de construción de cadeas, por outra banda, é maleable e pódese alterar segundo o crea apropiado.
33. Que son exactamente os delegados?
En C++, os delegados son fundamentalmente os mesmos que os punteiros de función. A única distinción entre os dous é que os delegados son seguros para o tipo, mentres que os punteiros de funcións non. Os delegados son necesarios porque permiten a construción de funcións xenéricas de tipo seguro.
34. Cando deberías utilizar o multithreading en C# e cando deberías evitalo?
O multithreading, a miúdo coñecido como threading, é un enfoque eficaz para aumentar a velocidade dun programa no que se executan simultáneamente numerosas actividades. Permite que varios fíos se executen de forma independente, en lugar de esperar a que se complete o paso anterior. Isto ten a capacidade de aumentar o ritmo dun programa.
Non obstante, cando varios dos procesos do programa están interconectados, non se recomenda o multithreading. Por exemplo, se o paso B dependese de que se completase primeiro o paso A, a multiproceso causaría problemas de rendemento e fallos de software. O threading faise cada vez máis sensible a medida que un programa se desenvolve en complexidade.
35. En C#, que é un delegado de multidifusión?
Un delegado de multidifusión en C#, en oposición a un delegado básico, refírese a numerosos métodos de destino. Cando se utiliza un delegado de multidifusión, chámanse todas as funcións sinaladas polo delegado. Impléntanse coa axuda da clase MulticastDelegate do sistema.
36. En C#, cal é a distinción entre a unión tardía e a unión temperá?
- A vinculación anticipada ten lugar no momento de compilación, mentres que a vinculación tardía ten lugar durante o tempo de execución.
- A vinculación tardía adoita ser máis lenta que a vinculación temperá xa que se produce no tempo de execución.
- En contraste coa vinculación tardía, que usa o obxecto para resolver chamadas de método, a vinculación anticipada resolve as chamadas de método utilizando información de clase.
37. Diferenciar entre Directcast e Ctype?
O tipo de obxecto que require que o tipo de tempo de execución coincida co tipo especificado en DirectCast convértese mediante DirectCast.
Cando se especifica unha conversión entre unha expresión e un tipo, utilízase Ctype.
38. Como se utiliza HashSet en C#?
En C#, un HashSet é unha colección non ordenada de distintos valores. En xeral, úsase para evitar que se insiran elementos duplicados nunha colección e ten un rendemento mellor que unha lista nesta tarefa.
A clase HashSet, que é descendente do System, úsase para implementala.
39. Explica a agrupación de subprocesos en C#.
En C#, un grupo de fíos é unha colección de fíos. Estes fíos empréganse para realizar tarefas sen interferir coa funcionalidade do fío principal. Un fío dun grupo de fíos volve ao grupo de fíos cando remata de executarse.
A clase System contén clases que manexan o fío no grupo de fíos e as súas accións. Enhebrado. ThreadPool é un espazo de nomes.
40. Cal é a distinción entre as palabras clave Const e ReadOnly en C#?
- ReadOnly non se pode declarar dentro do método, mentres que Const si.
- Const é unha constante de tempo de compilación, mentres que ReadOnly é unha constante de tempo de execución.
- Os valores de só lectura pódense modificar, pero os valores de Const non.
41. Que detalles sobre o ficheiro C# XSD pode proporcionar?
XSD significa XML Schema Definition. Se ningún ficheiro XSD está conectado co ficheiro XML, pode ter calquera atributo, elemento e etiqueta. O ficheiro XSD proporciona un marco para o ficheiro XML, determinando que compoñentes e atributos deben estar presentes no ficheiro XML, así como a súa orde.
42. Que significan para vostede as propiedades de Get and Set Accessor?
En C#, Get e Set denomínanse descriptores de acceso xa que están feitos usando propiedades. Unha propiedade permite ler e escribir sobre o valor dun campo privado. Accédese a estes campos privados a través de descriptores de acceso.
Mentres que a propiedade Get se usa para devolver o valor dunha propiedade, a propiedade Establecer úsase para establecer o valor.
43. Que é exactamente a inxección de dependencias en C#?
A inxección de dependencias (DI) é unha técnica de deseño en C# que se usa para crear programacións pouco ligadas. Este procedemento transfire a creación e vinculación de obxectos dependentes fóra da clase na que dependen. O principal obxectivo é facer que as futuras modificacións do código sexan máis manexables.
Conclusión
C# é a linguaxe de programación principal que se usa en todas as linguaxes de programación de nivel superior. Os desenvolvedores de C# teñen unha gran demanda e poden atopar perspectivas de carreira atractivas en industrias como o desenvolvemento front-end, a programación back-end e o desenvolvemento de aplicacións. E porque Microsoft o admite, a popularidade de C# só crecerá.
As mencionadas son as preguntas de entrevista C# máis importantes para profesionais experimentados e principiantes. Ver Serie de entrevistas de Hashdork para axudar na preparación da entrevista.
Deixe unha resposta