¿Cuál es la diferencia entre Java y C#?
1. Archivos fuente. C# puede estar en un archivo .cs. Aparecen varios espacios de nombres (espacios de nombres, algunos similares al paquete) y se definen varias clases. C# contiene directivas de preprocesamiento.
2. Tipo de datos.
a) C# define struct (estructura), que no puede ser abstracta ni heredada, y es un tipo de valor.
b) C# no tiene concepto de tipos básicos, todos son tipos orientados a objetos e int es la abreviatura de Int32.
c) En Java, const es una palabra reservada y final tiene el mismo significado que const en C#. También hay una palabra de solo lectura en C# que permite la asignación de valores iniciales en tiempo de ejecución.
d) Para comparar cadenas, puede usar = para comparar valores en C# y, al igual que Java, usar StringBuffer para reducir la sobrecarga de memoria.
3. Aspectos del operador. C# agrega Marcado y Sin marcar para evitar errores de compilación. Por ejemplo, "Pague un largo a int32. Si el 32 alto es cero, no habrá ningún error. De lo contrario, habrá un error de desbordamiento. Sin marcar le dice al compilador que no se preocupe por el desbordamiento y lo convierta tanto como sea posible. "
4. Aspecto de la oración ramificada. Goto es una palabra reservada en Java. Los casos en switch en C# no se ejecutarán secuencialmente y debe haber una palabra clave break o goto al final.
5. No parece haber diferencia en las declaraciones de bucle.
6. Modificadores de acceso. Poner main en el alcance. C# agrega interno e interno protegido. El primero significa que solo se puede ver desde el ensamblado actual, es decir, un DLL o EXE que se puede ensamblar en tiempo de compilación, similar a un JAR; significa que es visible para el ensamblaje actual o se incluirá a partir de ahora. Las clases heredadas de clases son visibles. Sellado es equivalente a la palabra clave final en Java.
7. Métodos. Al igual que Java, solo los tipos básicos se pasan por valor, otros se pasan por referencia. Sin embargo, C# también puede pasar tipos básicos por referencia, utilizando la palabra clave ref. La palabra clave out es algo similar a los procedimientos almacenados de Oracle. La diferencia con ref es que el método ignora el valor inicial del parámetro out y el método debe asignar un valor al parámetro out.
8. Atributos. Getter y Setter se escriben de manera diferente.
9. Herencia. C# agrega la palabra clave base para apuntar a la clase principal. En C#, la subclase solo puede anular aquellos métodos con la palabra clave virtual en la clase principal, y es necesario declarar la anulación al reescribir. Al igual que las clases abstractas, la palabra clave abstracta también debe anularse. La interfaz en C# no puede declarar constantes y las propiedades de la interfaz solo representan Getter o Setter.
10. No disponible en Java (Java realiza eventos implementando una clase de escucha personalizada). C# define delegados similares a punteros de función para implementar eventos.
11. Sobrecarga del operador. Ninguno en Java. La sobrecarga del operador debe ser un método estático de la clase, la sobrecarga == y otras operaciones de igualdad también deben sobrecargarse.
12. Aspectos anormales. Es muy similar a Java, excepto que no hay una palabra clave throws y no es necesario interceptar la excepción (por supuesto, debe interceptarse en la entrada principal del programa).
13. C# agrega un indexador, que puede acceder a clases o estructuras como matrices. Personalmente, creo que faltan algunas palabras, lo que todavía causa cierta confusión.
14. El atributo de C# es mucho más potente que la anotación de Java. Sin embargo, después de agregar AOP, este tipo de función dinámica de Java también es buena.
15. En C#, también puedes usar punteros directamente para asignar o recuperar memoria. Solo necesitas usar dos palabras clave, inseguro y fijo. 0 Comentarios.