tipos tipo programacion lenguaje ejemplos datos dato conversion c# primitive-types

programacion - ¿Cómo se hacen los tipos de datos primitivos en C#?



tipos de variables en lenguaje c (2)

¿Cómo funcionan System.float , System.int y otros tipos primitivos? Nunca entendí cómo era posible hacer estructuras primitivas y me pregunto si podría hacer mi propio tipo numérico.


Los tipos primitivos como int y float son compatibles directamente con el procesador, y la plataforma .net y los idiomas tienen un soporte incorporado similar para ellos. Por lo tanto, no hay forma de que pueda crear sus propias primitivas a nivel de lenguaje.


Suponiendo que estamos hablando de un compilador de C # que se dirige a la Infraestructura de lenguaje común (CLI), como casi todo lo hace, básicamente utiliza los tipos primitivos expuestos por la CLI.

Hay tres niveles de apoyo a tener en cuenta:

  • Primitivas genuinas, con su propia representación e instrucciones en IL
  • Tipos numéricos de los que el compilador de C # tiene un conocimiento especial, pero que no forman parte de la CLI, básicamente, System.Decimal . Esto también es parte del Sistema de tipo común (CTS), lo que significa que si crea un const decimal en C #, aún puede consumirlo en VB, por ejemplo. Pero todavía no hay soporte directo de IL .
  • Otros tipos numéricos, como BigInteger : puede escribir los suyos propios.

El término medio de la segunda viñeta permite que C # tenga literales decimales y constantes decimales, ninguno de los cuales es posible para la tercera viñeta. Por ejemplo, BigInteger no tiene soporte de idiomas, por lo que no puede escribir:

// This isn''t valid BigInteger bigInteger = 123456789012345678901234567890;

Tendría que analizar una representación de cadena en su lugar. Del mismo modo, no puede tener un const BigInteger .

(En teoría, sería posible tener un tipo con soporte en C # pero no en el CTS. No conozco ninguno de esos tipos).