c# introducción básica

conceptos basicos de c#



1. Qué es una clase abstracta y cuál es la diferencia entre esta y una interfaz

En C#, una clase abstracta se refiere a una clase de la que no se puede crear una instancia y su propósito es que otros tipos derivados la hereden e implementen. Una clase abstracta puede contener métodos abstractos, métodos virtuales y métodos no virtuales, y la subclase debe implementar todos los métodos abstractos en la clase principal; de lo contrario, la subclase también debe declararse como una clase abstracta.

Por el contrario, una interfaz es una clase abstracta especial que solo contiene las firmas de miembros como métodos, propiedades, eventos e indexadores sin ningún código de implementación. Una clase que implementa una interfaz necesita proporcionar el código de método concreto que implementa estos miembros. Una clase puede implementar más de una interfaz, por lo que puede obtener el código de implementación para todos los miembros definidos en la interfaz.

En términos de uso, las clases abstractas están diseñadas teniendo en cuenta lo común y no se pueden instanciar porque no poseen objetos reales. La interfaz presta más atención al comportamiento y define un conjunto de reglas para que diferentes objetos puedan tener comportamientos comunes, lo cual es conveniente para los desarrolladores programar.

2. ¿Qué es el polimorfismo?

El polimorfismo es un concepto importante en la programación orientada a objetos, lo que significa que el mismo método u operación puede producir diferentes comportamientos en diferentes objetos. En términos simples, cuando se llama al mismo método en diferentes objetos, tendrá un rendimiento o resultados diferentes.

El polimorfismo debe basarse en la herencia y la implementación de la interfaz. En C #, el polimorfismo en tiempo de ejecución se puede realizar a través de la relación de herencia, es decir, se hace referencia a un objeto de clase derivado a través de la clase base, se realiza una llamada a la función y se puede llamar a la implementación de la función correspondiente de acuerdo con el tipo de objeto específico. .

Por ejemplo, supongamos que hay una clase base Animal, que tiene una función de miembro virtual Speak(), y dos clases derivadas Dog y Cat, que anulan la función Speak() En Main(), podemos definir una variable de tipo Animal animal y, a continuación, apúntelo a un objeto Dog o Cat concreto. De esta forma, al llamar a la función Speak() de animal, lo que en realidad se llama es la función Speak() del objeto específico, resultando en diferentes comportamientos.

Además, C# también implementa el polimorfismo en tiempo de compilación a través de interfaces, es decir, diferentes clases pueden implementar la misma interfaz, utilizando así los métodos definidos por la misma interfaz, de modo que se pueda lograr un comportamiento polimórfico a través de operaciones relacionadas de la interfaz.

3. ¿Conoces el índice de la base de datos, brevemente?

Un índice de base de datos es una estructura de datos utilizada para acelerar la recuperación y operación de datos en una tabla de base de datos.Se puede comparar con un índice en un diccionario, lo que nos permite encontrar la información que necesitamos más fácilmente.

El índice en la base de datos generalmente construye una estructura de datos como un árbol binario o un árbol B+ de acuerdo con una determinada columna o una combinación de columnas, y estas estructuras de datos permiten un rápido posicionamiento de los datos. Cuando consultamos los datos en esta tabla, si se usa un índice, la base de datos primero usará el índice para encontrar registros calificados en lugar de escanear toda la tabla fila por fila, mejorando así en gran medida la eficiencia de la consulta.

Además de las consultas, los índices de la base de datos también pueden acelerar las operaciones INSERTAR, ACTUALIZAR y ELIMINAR. Debido a que estas operaciones afectarán el índice de la tabla, la base de datos también debe mantener la estructura de índice correspondiente al realizar operaciones relacionadas.

Por supuesto, cuantos más índices, mejor, porque cada índice debe ocupar espacio de almacenamiento, y al modificar la tabla, todos los índices asociados deben actualizarse, por lo que demasiados índices afectarán el rendimiento de INSERT, UPDATE y DELETE Rendimiento operativo, y malgastar recursos informáticos, aumentar la complejidad de la base de datos. Por lo tanto, se requiere una consideración cuidadosa al diseñar y usar índices para evitar el abuso.

4. Las ventajas y desventajas de array y arraylist y la diferencia entre ellos.

Matriz (matriz):

Ventajas: Debido a que todos los elementos son del mismo tipo, la velocidad de acceso es rápida y la utilización de la memoria es alta.
Desventajas: el tamaño no se puede modificar, la longitud debe determinarse de antemano y se almacena directamente en bits de memoria continuos, y las operaciones de inserción y eliminación son ineficientes.

Lista de arreglos (ArrayList):

Ventajas: la longitud se puede aumentar o disminuir en cualquier momento, y se proporcionan muchos métodos convenientes, como Agregar, Eliminar, etc., con buena flexibilidad.
Desventajas: el consumo de memoria es relativamente grande, porque sus tipos de elementos pueden ser diferentes, por lo que cada elemento necesita un puntero de tipo adicional y un marcador de recolección de elementos no utilizados.
La principal diferencia entre los dos es que Array tiene un tamaño fijo y no se puede cambiar una vez declarado, mientras que ArrayList se puede cambiar de tamaño dinámicamente. Al mismo tiempo, Array solo puede almacenar datos del mismo tipo, mientras que ArrayList puede almacenar datos de diferentes tipos. Además, limitada por los diferentes métodos de almacenamiento, la eficiencia de las dos operaciones en varias operaciones también es diferente.

Para el caso en que solo se necesita almacenar el mismo tipo de datos, la longitud es fija y se requiere el mejor rendimiento, es más apropiado usar Array; para el caso en que la longitud es incierta o se necesitan diferentes tipos de datos almacenado, es más flexible y conveniente usar ArrayList.

Cabe señalar que debido al problema del empaquetado y desempaquetado, ArrayList es menos eficiente. Por lo tanto, después de .NET Framework 2.0, Microsoft lanzó colecciones genéricas, como List, Dictionary<TKey, TValue>, etc., para reemplazar las clases de colección no genéricas originales. Estas colecciones genéricas proporcionan un mejor rendimiento y sexo seguro.

volver a la cima


Supongo que te gusta

Origin blog.csdn.net/weixin_47410172/article/details/130579278
Recomendado
Clasificación