Red de conocimiento informático - Computadora portátil - ¿Existe algún método similar a MEMSET en C#?

¿Existe algún método similar a MEMSET en C#?

No, C# es un lenguaje de quinta generación. Estrictamente hablando, es sólo una capa de lenguaje. neto. C# finalmente se compila en MSIL (lenguaje intermedio). Aunque este archivo de idioma intermedio es dll o exe, es muy diferente de un archivo PE real directamente ejecutable (exe, dll). No se puede ejecutar directamente y requiere compatibilidad con el tiempo de ejecución de CLR. Es un archivo similar al lenguaje ensamblador. En tiempo de ejecución, JIT lo traducirá nuevamente a un lenguaje ejecutable por máquina, que también es una característica multiplataforma. Esta DLL o exe en lenguaje MSIL se traduce JIT a diferentes lenguajes de máquina en diferentes sistemas operativos y plataformas. Algunas de las imágenes ejecutables traducidas se almacenarán en la máquina local y se podrán usar directamente al volver a llamar a funciones relacionadas. Por lo tanto, no existe diferencia entre el lenguaje C# y VB. Es simplemente un lenguaje de desarrollo de alto nivel utilizado en el proceso de desarrollo.

Volviendo a las características de C#, C# es un lenguaje puramente orientado a objetos, sin variables ni funciones que existan fuera del objeto. Basado en C++, elimina punteros y delegados (excepto la programación de código inseguro), dejando solo especificaciones de código (puede pensar que ha aprendido el lenguaje C# después de leer el documento técnico), simplificando muchas funciones y bibliotecas de clases utilizadas para llamar. neto. En otras palabras, es un código simple e incluso leer un archivo es una llamada a una clase en el sistema. Espacio IO en el. biblioteca de clases neta.

En el código seguro de C#, excepto para las llamadas a la plataforma, la memoria ya no se utilizará. Incluso si se abre el espacio de memoria, es solo un objeto de inicialización, por lo que básicamente C# no necesita memoria (excepto). para programación insegura) ). Por lo tanto, no existe una función como MemSet.

Sin embargo, C# en sí admite el tipo de matriz de bytes, por lo que es inevitable operar en la matriz de bytes. Mucha gente piensa que su funcionamiento en matrices de bytes es similar al de la memoria (simplemente lo parece). Hay clases BitConverter en el espacio del sistema que pueden realizar diferentes operaciones en matrices de bytes. Por ejemplo, podemos crear una frase de longitud especificada, como byte[]ms = new byte[60]; durante el proceso de creación, todos los bytes se completarán con \0 y luego se pueden copiar diferentes matrices usando la matriz; método miembro BlockBulk.

Por supuesto, otra biblioteca también está estrechamente relacionada con la memoria: Stream, y luego puede haber diferentes operaciones de transmisión para Stream, etc. La longitud de una secuencia parcialmente grabable se puede definir directamente o se puede anular contenido diferente.

En resumen, ya no existe una operación directa de la memoria en el desarrollo convencional de C#, sino diferentes formas de encapsulación de memoria en diferentes bibliotecas de clases, que en última instancia pueden cumplir requisitos funcionales similares. Debido a los problemas de mecanismo del propio C/CPP, es imposible tener requisitos similares. Una sugerencia es que si desea aprender C#, vaya más allá del pensamiento original de C/CPP y piense que debería estudiar C# en serio. No espere hacer tales suposiciones o analogías a nivel del lenguaje (la razón por la cual mucha gente). en China no pueden hablar bien inglés es que no pueden aprender de su lengua materna).