2011-07-13 8 views
13

¿Cómo se llama esto?Carta después de un número, ¿cómo se llama?

double d1 = 0d; 
decimal d2 = 0L; 
float d3 = 0f; 

¿Y dónde puedo encontrar una referencia de los caracteres que puedo usar? Si deseo enviar 0 al short, ¿qué letra necesito?

+0

No es una lista oficial, pero esto es útil: http://www.dotnetperls.com/suffix – Flynn1179

+0

[Numérico Literal] (http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx) Creo que es lo que estás después. Y '(short) 0' se lanzaría por ti. –

Respuesta

17

La mejor fuente es la especificación C# (está en la sección "2.4.4. Literales" en la versión 4).

Los bits relevantes:

El tipo de un número entero literal se determina como sigue:

  • Si el literal no tiene sufijo, que tiene el primero de estos tipos en la que su valor puede estar representado: int, uint, long, ulong.
  • Si el literal tiene el sufijo U o u, tiene el primero de estos tipos en que se puede representar su valor: uint, ulong.
  • Si el literal tiene el sufijo L o l, tiene el primero de estos tipos en que se puede representar su valor: long, ulong.
  • Si el literal tiene el sufijo UL, UL, UL, LU, LU, LU o LU, es del tipo ulong.

Si no se especifica ningún tipo de sufijo, el tipo del literal real es el doble. De lo contrario, el tipo real de sufijo determina el tipo de la verdadera literal, como sigue:

  • A real literal sufijo por F o f es de tipo float. [...]

  • Un literal real con el sufijo D o d es del tipo double. [...]

  • Un literal real con el sufijo M o m es del tipo decimal. [...]

Eso significa la letra (o letras) se llama “sufijo”. No hay forma de representar short de esta manera, por lo que debe usar (short)0, o simplemente short x = 0;.

14

Se llama sufijo.
Una visión general se puede encontrar here

10

Este

double d1 = 0d; 

es un ejemplo de un literal y el carácter después de los dígitos es un sufijo. No hay ninguno para short. Es necesario para emitir:

short s = (short)0; 

Estos se definen en 2.4.4 de la especificación del lenguaje, específicamente 2.4.4.2 le dirá acerca literales enteros, donde se verá que no hay manera de expresar un short usando un literal . Además, los integer-type-suffix ES son:

U u L l UL Ul uL ul LU Lu lU lu 

que representan diversos tipos unsigned int firmados// largas. Nuevamente, no hay forma de expresar un short usando literal.

+2

-1: No se llaman literales. Se llaman sufijos. El literal es el número completo que incluye el sufijo. –

+1

Se ha eliminado el voto a favor después de la edición. –

+0

@Daniel Hilgarth: Claramente, solo quiere expresar un 'corto' usando un literal, y por lo tanto, expliqué el concepto más amplio. Gracias por explicar, al menos. – jason

0

Puede encontrar una referencia a los literales en el siguiente enlace:

http://msdn.microsoft.com/en-us/library/aa664672(v=VS.71).aspx

Solo la letra después del número se llama sufijo.

No hay uno específicamente para abreviar.

Y estos son solo literales de valores para que pueda diferenciar los diferentes tipos de valores. Cuando lanzas, usas los métodos de lanzamiento regulares.

Cuestiones relacionadas