1. Describa brevemente los permisos de acceso de los modificadores privados, protegidos, públicos e internos.
Respuesta:
Privado: miembro privado, al que solo se puede acceder dentro de la clase.
Protegido: Se puede acceder a los miembros protegidos dentro de la clase y en clases heredadas.
Público: Miembro del público, completamente abierto y sin restricciones de acceso.
Interno: Accesible dentro del mismo espacio de nombres.
2. Enumere varios métodos para pasar valores entre páginas ASP.NET.
Respuesta:
(1) ¿Usar QueryString, por ejemplo...? identificación = 1; respuesta. Redirect()....
(2) Usar variables de sesión
(3) Usar el servidor. Transferencia
3. La regla de numeración de una columna es la siguiente: 1, 1, 2, 3, 5, 8, 13, 21, 34... Para encontrar la posición 30, utilice un algoritmo recursivo. .
Respuesta:
Clase pública MainClass
{
Vacío estático público Main()
{ p>
Consola. WriteLine(Foo(30));
}
Estático público int Foo(int i)
{
If(i& lt = 0)
Devuelve 0;
si no(I>0&&i<=2)
Devuelve 1;
p>De lo contrario, return Foo(I-1)+Foo(I-2);
}
}
4.C # ¿Qué es una comisión? ¿Un evento es un encargo?
Respuesta: Un delegado puede reemplazar un método como parámetro en otro método. Un delegado puede entenderse como una referencia a una función. Los eventos son un tipo especial de delegación.
5. La diferencia entre sobrescribir y sobrecargar
Respuesta:
La diferencia entre sobrescribir y sobrecargar es que el método tiene el mismo nombre. Diferentes parámetros o tipos de parámetros se sobrecargan varias veces para satisfacer diferentes necesidades.
Anular es anular una función en una clase base. Para satisfacer necesidades.
6. Si es necesario pasar valores variables en un sistema con estructura B/S, pero no se pueden utilizar Sesión, Cookie y Aplicación, ¿cuántas formas hay de manejarlo?
Respuesta: Esta. Server.Transfer
7. Recorra mediante programación todos los controles TextBox de la página y asígnelos como cadenas. ¿Vacío?
Respuesta:
foreach(System. Windows.Forms.Control. Control)
{
Si (El control es System. Windows .Forms.TextBox)
{
Sistema. windows .forms .textbox TB = (Sistema. Windows. Forms.TextBox) control;
TB. texto = cadena. Vacío;
}
}
8. ¿Programe un algoritmo de clasificación de burbujas?
Respuesta:
int[]array = new int;
int temp = 0
for(int I = 0; i & lt longitud de la matriz - 1; i++)
{
for(int j = I+1; j & lt matriz.
longitud; j++)
{
if(matriz[j]& lt; matriz[i])
{
temp = matriz[I];
matriz[I]= matriz[j];
matriz[j]= temp;
}
}
}
9. Describir el proceso de implementación del indexador en C#. ¿Es posible indexar solo por números?
No. Cualquier tipo servirá.
10. Encuentre el valor de la siguiente expresión y escriba uno o más métodos de implementación que se le ocurran: 1-2+3-4+...+M.
Respuesta:
int Num = este cuadro de texto 1. texto .ToString();
int Suma = 0;
for(int I = 0;i<num+1;i++)
{ p>
si ((i % 2) == 1)
{
suma+= I;
}
Otro
{
Suma = Suma-I;
}
}
Sistema. Console.WriteLine(Sum.ToString());
System. consola . ReadLine();
11. Como sistema de estructura B/S, ¿cuántas capas estás desarrollando? ¿Cuál es la relación entre cada capa y por qué están así?
Respuesta: Generalmente son 3 capas. Capa de acceso a datos, capa empresarial y capa de presentación. La capa de acceso a datos agrega, elimina, inspecciona y modifica la base de datos. La capa empresarial generalmente se divide en dos capas: la capa de apariencia empresarial implementa la comunicación con la capa de presentación y la capa de reglas comerciales implementa la seguridad de la contraseña del usuario. Para interactuar con el usuario, por ejemplo, el usuario agrega un formulario y una capa de presentación.
Ventajas: clara división del trabajo, organización clara, fácil depuración y gran escalabilidad.
Desventajas: Mayor coste.
12. En el siguiente ejemplo
Utilice el sistema;
Nivel A
{
Público A ( )
{
imprimir campo();
}
Vacío virtual público PrintFields()
{
}
}
Clase B: Clase A
{
int x = 1;
p>int y;
Público B()
{
y =-1;
} p >
Anulación pública void PrintFields()
{
Consola. WriteLine("x={0}, y={1} ", x, y);
}
}
Creado usando new B() Cuando se utiliza una instancia de B, ¿cuál es el resultado?
Respuesta: X=1, Y = 0; x=1 y=-1
¿Qué es un dominio de aplicación?
Respuesta: El campo de aplicación puede entenderse como un proceso ligero. Juega un papel seguro. Y requiere menos recursos.
Cuáles son las explicaciones del 14. ¿Son CTS, CLS y CLR?
Respuesta: CTS: Sistema de Lenguaje Común. CLS: Especificación de lenguaje común. Tiempo de ejecución de lenguaje común.
15. ¿Qué es empaquetar y desempacar?
Respuesta: De la interfaz de tipo de valor al boxeo de tipo de referencia. Conversión de tipo de referencia a tipo de valor unboxing.
¿Qué es el código controlado?
Respuesta: Inseguro: código no administrado. Ejecutar sin CLR.
17. ¿Qué es un sistema de tipos fuerte?
Respuesta: RTTI: Sistema de Identificación de Modelos.
18¿Qué clases se necesitan para leer y escribir la base de datos? . ¿neto? ¿Cuál es su papel?
Respuesta: Conjunto de datos: almacenamiento de datos.
DataCommand: Ejecutar comando de declaración.
DataAdapter: Una colección de datos repleta de términos.
19.¿Cuáles son los métodos de autenticación de ASP.net? ¿Cuál es el principio?
Respuesta: 10. Windows (predeterminado) usa IIS... de la cuenta (formulario)... pasaporte (clave).
20. ¿Qué es la tecnología de ocultación de código?
Respuesta: El código está incrustado.
21. ¿Qué significan las redes y accesorios en pulgadas?
Respuesta: Montaje. (Lenguaje intermedio, datos fuente, recursos, lista de ensamblaje)
22. ¿Cuáles son los métodos comunes para llamar a WebService?
Respuesta: 1. Utilice la herramienta de línea de comandos WSDL.exe. 2. Utilice la opción de menú "Agregar referencia web" en VS.NET.
¿Cuál es el principio de funcionamiento del 23.23. . red remota?
Respuesta: El servidor envía un número de proceso y un número de dominio de programa al cliente para determinar la ubicación del objeto.
24. En c#, string str = null y string str = " "Intente utilizar texto o imágenes para explicar la diferencia.
Respuesta: string str = null significa no asignarle espacio de memoria, string str = "" asigna espacio de memoria y la longitud de la cadena está vacía.
25. Explique en detalle las similitudes y diferencias entre clases y estructuras en dotnet.
Respuesta: Se puede crear una instancia de clase y es un tipo de referencia y se asigna en el montón de memoria. La estructura es un tipo de valor y se asigna en el montón de memoria.
(1), la estructura es un tipo de valor;
(2) La estructura no admite herencia
(3) La estructura no puede definir un; constructor predeterminado;
p>
(4) La estructura no puede definir un destructor
(5) La estructura no puede usar valores iniciales para establecer valores de dominio.
26. Según el conocimiento del delegado, complete los siguientes fragmentos de código en el control de usuario:
Prueba de espacio de nombres
{
Delegado público void OnDBOperate();
Clase pública UserControlBase: System. Windows . Forms . UserControl
{
OnDBOperate OnNew actividad pública;
privatevidtoolbar_button click(remitente del objeto, System. windows . form . botón de la barra de herramientas haga clic en eventargs e)
{
if(e.Button.Equals(BtnNew))
{
//Complete el código para llamar al Evento OnNew firmado por el delegado de OnDBOperate a continuación.
}
}
}
}
Respuesta: Si (OnNew! = null ) OnNew( this, e);
27. Analiza el siguiente código y completa los espacios.
Cadena strTmp = " abcdefg XXX
int i=system.text.encoding.default.getbytes(strTmp).length;
int j= strTmp. Longitud;
Después de ejecutar el código anterior, I = _ _ _ _ _ _ _ j = _ _ _ _ _ _ _
Respuesta: i=13, j=10
28. En el servidor SQL, hay dos campos ID y LastUpdateDate en la tabla dada table1, donde ID representa el número de transacción actualizado y LastUpdateDate representa la hora del servidor en el momento de la actualización. Sentencias SQL para obtenerlo. El número de transacción actualizado más recientemente.
Respuesta: Seleccione ID de la tabla 1 donde fecha de última actualización = (seleccione máximo (fecha de última actualización) de la tabla 1).
29. Basado en el conocimiento de la seguridad de subprocesos, analice el siguiente código. ¿Causaré > 10 un punto muerto al llamar a un método de prueba? Y explique brevemente por qué.
Prueba de vacío público(int i)
{
Bloquear(esto)
{
Si ( i & gt10)
{
I-;
Prueba (1);
}
}
}
Respuesta: No habrá punto muerto (pero una cosa es que int se pasa por valor, por lo que solo se cambia una copia a la vez, por lo que no habrá punto muerto. Pero si se utiliza un objeto en lugar de int, se producirá un punto muerto)
30. Hable brevemente sobre su comprensión de la comunicación remota y el servicio web en el marco de Microsoft. NET y sus aplicaciones prácticas.
Respuesta: WS puede utilizar principalmente HTTP para penetrar firewalls. La comunicación remota puede utilizar TCP/IP y transporte binario para aumentar la eficiencia.
31. La empresa necesita desarrollar un componente que herede el sistema de clases. Windows.Forms.ListView, que requiere las siguientes funciones especiales: cuando se hace clic en el encabezado de la columna de ListView, todas las filas de la vista se pueden reorganizar de acuerdo con el valor de cada fila de la columna en la que se hizo clic (el método de clasificación es similar al cuadrícula de datos). Según sus conocimientos, comparta brevemente sus pensamientos.
Respuesta: Según el título de la columna en la que se hizo clic, extraiga el ID de la columna, ordene por ID y luego vincúlelo a ListView.
32. Dado el siguiente archivo XML, complete el diagrama de flujo del algoritmo.
& ltFileSystem>
& ltDriverC & gt
& ltDir DirName="MSDOS622 " >>p>
& ltFile FileName = " Command.com " & gt& lt/Archivo & gt;
& lt/Dir & gt;
& ltArchivo Nombre de archivo ="MSDOS.SYS " & gt& lt/Archivo & gt ;
& ltFile FileName ="IO.SYS " & gt& lt/File & gt;
& lt/DriverC & gt;
& lt/sistema de archivos> p>
Dibuje un diagrama de flujo para recorrer todos los nombres de archivos (utilice un algoritmo recursivo).
Respuesta:
void FindFile(directorio d)
{
FileOrFolders = d. GetFileOrFolders();
foreach(carpeta de archivos fof en la carpeta de archivos)
{
si (fof es un archivo)
Encontraste un archivo;
p >else if (fof es un directorio)
FindFile(fof);
}
}
33. Una declaración Sql: elimine de 31 a 40 registros en la tabla A (SQLServer, utilizando el ID que crece automáticamente como clave principal. Nota: los ID no son necesariamente consecutivos.
a: Solución 1: el ID del esclavo es no está allí Seleccione los 10 principales * de a (seleccione los 30 identificadores principales de a)
Solución 2: Seleccione los 10 principales * de a donde id >;(seleccione los 30 identificadores principales de a) como A)<). /p>
34. El lenguaje orientado a objetos es _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Respuesta: Encapsulación, herencia y polimorfismo.
35. Para recorrer los objetos accesibles, Foreach necesita implementar la interfaz _ _ _ _ _ _ _ _ o declarar el tipo de _ _ _ _ _ _ _ _.
Respuesta: IEnumerable, GetEnumerator.
36. ¿Qué es GC? ¿Por qué hay GC?
Respuesta: GC es un recolector de basura. Los programadores no tienen que preocuparse por la administración de la memoria porque el recolector de basura la administra automáticamente. Para solicitar la recolección de basura, puede llamar a uno de los siguientes métodos: system.gc () runtime.getruntime(). gc().
37.String s = new string("XYZ");¿Cuántos objetos de cadena se crean?
Respuesta: Hay dos objetos, uno es "xyx" y el otro es el objeto de referencia S que apunta a "xyx".
38. ¿Cuál es la diferencia entre clase abstracta e interfaz?
Respuesta:
Una clase que declara la existencia de un método sin implementarlo se llama clase abstracta. Se utiliza cuando desea crear una clase que incorpore algún comportamiento básico y declarar un método para esta clase, pero no puede implementar esta clase en esta clase. No se pueden crear instancias de clases abstractas. Sin embargo, puede crear una variable de tipo clase abstracta y apuntarla a una instancia de una subclase concreta. No puede haber constructores abstractos ni métodos estáticos abstractos. Las subclases de una clase abstracta proporcionan implementaciones para todos los métodos abstractos en su clase principal; de lo contrario, también son clases abstractas. En su lugar, implemente este método en una subclase. Otras clases que conozcan su comportamiento pueden implementar estos métodos en su clase.
Las interfaces son variaciones de clases abstractas. En una interfaz, todos los métodos son abstractos. La herencia múltiple se logra implementando dicha interfaz. Todos los métodos de una interfaz son abstractos y no tienen cuerpo de programa. Las interfaces solo pueden definir variables miembro finales estáticas. La implementación de una interfaz es similar a la implementación de una subclase, excepto que la clase de implementación no puede heredar el comportamiento de la definición de la interfaz. Cuando una clase implementa una interfaz particular, define (es decir, le da el cuerpo del programa) todos los métodos de dicha interfaz. Luego puede llamar a los métodos de la interfaz en cualquier objeto de la clase que implemente la interfaz. Debido a la clase abstracta, permite usar el nombre de la interfaz como tipo de variable de referencia. El enlace dinámico habitual entrará en vigor. Las referencias se pueden convertir hacia y desde tipos de interfaz, y el operador instancia de se puede utilizar para determinar si la clase de un objeto implementa la interfaz.
39. ¿Usar run() o start() para iniciar un hilo?
Respuesta: Iniciar un subproceso es llamar al método start() para hacer que el procesador virtual representado por el subproceso esté en un estado ejecutable, lo que significa que puede ser programado y ejecutado por la JVM. Esto no significa que el hilo se ejecutará inmediatamente. El método run() puede detener un hilo generando un indicador de que debe salir.
40. ¿Puede una interfaz heredar de una interfaz? ¿Puede una clase abstracta implementar una interfaz? ¿Puede una clase abstracta heredar de una clase concreta?
Respuesta: Las interfaces se pueden heredar de las interfaces. Las clases abstractas pueden implementar interfaces, independientemente de si la clase abstracta puede heredar clases de entidad, pero solo si la clase de entidad tiene un constructor explícito.
41. ¿Se puede anular el constructor?
Respuesta: El constructor no se puede heredar, por lo que no se puede anular, pero se puede sobrecargar.
42. ¿Puedes heredar la clase String?
Respuesta: La clase String es una clase final, por lo que no se puede heredar.
43. Si hay una declaración de retorno en el intento {}, ¿se ejecutará el código finalmente {} inmediatamente después del intento? ¿Cuándo se ejecutará, antes o después del retorno?
Sí, antes de volver.
44. Dos objetos tienen el mismo valor (x.equals(y) == true), pero pueden tener códigos hash diferentes. ¿Es esto correcto?
Respuesta: No, tienen el mismo código hash.
45. ¿Puede el interruptor operar en bytes, largos y cadenas?
Respuesta: En switch(expr1), expr1 es una expresión entera. Por lo tanto, los parámetros pasados a las declaraciones switch y case deben ser int, short, char o byte.
La cuerda no puede ser ni larga ni corta.
47. Cuando un hilo ingresa a un método sincronizado de un objeto, ¿pueden otros hilos ingresar a otros métodos del objeto?
No, solo un hilo puede acceder a los métodos sincronizados de un objeto.
48. ¿Puede un método abstracto ser estático, nativo y sincrónico al mismo tiempo?
Respuesta: Ninguna.
49. ¿Las listas, conjuntos y mapas heredan de la interfaz de colección?
Las listas y los conjuntos son mapas, ¿verdad?
50. Los elementos de un conjunto no se pueden repetir, entonces, ¿qué método se utiliza para distinguir si se repiten? ¿Es == o igual a ()? ¿Cuál es la diferencia entre los dos?
Respuesta: Los elementos de la colección no se pueden repetir, por lo que se utiliza el método iterator() para distinguir si se repiten. Equals() determina si dos conjuntos son iguales.
Los métodos equals() y == determinan si el valor de referencia apunta al mismo objeto. equals() se anula en la clase para devolver un valor verdadero cuando el contenido y los tipos de dos objetos separados coinciden.
51. ¿La matriz tiene un método length()? ¿String tiene un método length()?
Respuesta: Los arrays no tienen el método length(), pero sí el atributo length. La longitud del método de la cadena es ().
52. ¿Cuál es la diferencia entre dormir() y esperar()?
Respuesta: El método sleep() es un método para detener un hilo durante un período de tiempo. Una vez transcurrido el intervalo de suspensión, el subproceso no necesariamente reanuda la ejecución de inmediato. Esto se debe a que en ese momento, es posible que se estén ejecutando otros subprocesos y no están programados para abandonar la ejecución a menos que (a) el subproceso "activado" tenga una prioridad más alta.
(b) El hilo en ejecución está bloqueado por otros motivos.
Wait() es una interacción de hilo. Si un subproceso llama a un objeto de sincronización X, el subproceso suspenderá la ejecución y el objeto llamado entrará en estado de espera hasta que se despierte o expire el tiempo de espera.
54. Habla sobre la diferencia entre final, finalmente y finalizar.
Respuesta:
Final-Modifier (palabra clave) Si una clase se declara como Final, significa que ya no puede derivar nuevas subclases, ni se puede heredar como clase padre. . Por tanto, una clase no puede declararse abstracta y final al mismo tiempo. Declarar variables o métodos finales garantiza que no se cambiarán mientras estén en uso. A las variables declaradas finales se les debe asignar un valor inicial cuando se declaran y solo pueden leerse pero no modificarse mediante referencias posteriores. Los métodos declarados como finales sólo se pueden utilizar y no se pueden sobrecargar.
Finalmente: proporcione un bloque Finalmente para realizar cualquier operación de limpieza durante el manejo de excepciones. Si se produce una excepción, se ejecutará la cláusula catch correspondiente y el control pasará al bloque finalmente (si lo hay).
Completo: nombre del método. La tecnología Java permite el uso del método finalize() para realizar la limpieza necesaria antes de que el recolector de basura borre un objeto de la memoria. El recolector de basura llama a este método cuando determina que no se hace referencia al objeto. Está definido en la clase Objeto, por lo que todas las clases lo heredan. Las subclases anulan el método finalize() para organizar los recursos del sistema o realizar otras tareas de limpieza. Antes de que el recolector de basura elimine el objeto, se llama al método finalize().
55. ¿Cómo manejar cientos de miles de datos concurrentes?
Respuesta: Utilizar procedimientos o transacciones almacenados. Obtenga la ID máxima mientras actualiza. Tenga en cuenta que la clave principal no se incrementa automáticamente. Cuando este método es concurrente, no habrá claves primarias duplicadas. Para obtener la ID máxima, necesita un procedimiento almacenado para obtenerla.
56. ¿Cuál es el principal error de Session y qué métodos ha propuesto Microsoft para solucionarlo?
Respuesta: Debido al mecanismo de reciclaje de procesos en IIS, si el sistema está ocupado, la sesión se perderá. Puede almacenar la sesión en forma de servidor de estado o base de datos de SQL Server, pero este método es más lento y no captura el evento de finalización de la sesión.
57. ¿Cuál es la diferencia entre un proceso y un hilo?
Respuesta: El proceso es la unidad mediante la cual el sistema asigna y programa recursos. Los subprocesos son la unidad de programación y envío de la CPU. Un proceso puede tener varios subprocesos y estos subprocesos * * * disfrutan de los recursos de este proceso. Tanto los subprocesos como los procesos definen algún tipo de límites, pero la diferencia es que los procesos definen los límites entre aplicaciones. Diferentes procesos no pueden * * * disfrutar del código y el espacio de datos, mientras que los subprocesos definen el límite entre la pila de ejecución del código y el contexto de ejecución. límites entre. Un proceso puede contener varios subprocesos. Crear varios subprocesos para completar una tarea al mismo tiempo es multiproceso. Diferentes subprocesos en el mismo proceso comparten código y espacio de datos. Para usar una analogía, si una familia representa un proceso, dentro de la familia, cada miembro es un hilo. Cada miembro de la familia tiene la obligación de acumular riqueza familiar y el derecho a consumirla. Ante una tarea, la familia también puede enviar a varios miembros a cooperar, pero personas ajenas a la familia no pueden consumir directamente bienes que no pertenecen a su propia familia.
58. ¿Cuál es la diferencia entre montón y pila?
a: Pila: asignada y liberada automáticamente por el compilador. Las variables definidas en el cuerpo de la función suelen estar en la pila.
Montón: Generalmente asignado y liberado por el programador. La memoria asignada mediante funciones nuevas, malloc y otras funciones de asignación de memoria está en el montón.
59. ¿Cuál es el efecto de agregar estática antes de las variables miembro y las funciones miembro?
Respuesta: Se denominan variables miembro constantes y funciones miembro constantes respectivamente, también llamadas variables miembro de clase y funciones miembro de clase. Se utiliza para reflejar el estado de la clase. Por ejemplo, las variables de los miembros de la clase se pueden utilizar para contar el número de instancias de la clase y las funciones de los miembros de la clase son responsables de esta operación estadística.
60. Comparado con ASP, ¿cuáles son las principales mejoras de ASP.NET?
Respuesta: La forma de interpretación asp y el tipo de compilación aspx mejoran el rendimiento y ayudan a proteger el código fuente.