2009-12-22 24 views
9

En C# si uso decimal (minúscula 'd'), el IDE lo muestra en azul oscuro (como int). Si uso Decimal (mayúscula 'd'), el IDE lo muestra en azul verdoso (como un nombre de clase). En ambos casos, la información sobre herramientas es struct System.Decimal.En C# son decimales y decimales diferentes?

¿Hay alguna diferencia? ¿Es uno "preferido"?

Respuesta

19

No; idéntico. decimal es definido como como un alias de System.Decimal, y generalmente se prefiere, excepto en los nombres de métodos públicos, donde debe usar el nombre propio (ReadDecimal, etc.), porque las personas que llaman podrían no ser C#. Esto es más notable en int vs ReadInt32, etc.

Hay ciertamente no es la diferencia de boxeo al estilo de Java.

(por supuesto, si lo hace algo así como declarar un mayor espacio de nombres local Decimal que hace algo completamente diferente, entonces no son diferencias, pero eso sería tonto).

+0

Gracias, Marc, y felicidades por 100K! –

+0

Saludos. Me alegro de haber llegado antes de Navidad ;-p –

+2

¡Es un milagro festivo! –

1

decimal es un alias de Decimal. Ellos son la misma cosa.

2

Es lo mismo, Decimal es el tipo .Net y decimal es la palabra clave C#.

0

No. Solo son atajos.

Si pasa el mouse sobre decimal, verá System.Decimal. Al igual que con int y System.Int32, objeto y System.Object, cuerda y System.String, doble y System.Double

Yo prefiero el decimal y cuerda, pero realmente creo que su personal

0

No, ellos' es lo mismo Uno se colorea como una palabra clave (decimal), el otro se colorea como un tipo (decimal). La palabra clave es solo un alias para el tipo.

1

El azul oscuro es para palabras clave de lenguaje, el trullo es para tipos. En el caso de decimal es una palabra clave que representa un alias de tipo .

2

System.Decimal es .NET Framework type, decimal es un alias en el idioma C#.

Ambos están compilados en System.Decimal en IL, por lo que no hay diferencia.

es exactamente lo mismo de int y System.Int32, string y System.String etc ..

0

Es la misma cosa. 'deciaml' es la palabra clave C# para System.Decimal.

esto se aplica a otros tipos como cadena y de cadena etc.

1

decimal es una palabra clave y siempre se refiere a la struct System.Decimal se define en la biblioteca de clases base. Decimal generalmente significa lo mismo que la mayoría de las personas tiene using System; encima de su código fuente.Sin embargo, estrictamente hablando, esos no son idénticos (no puede encontrarlos y reemplazarlos a ciegas):

namespace Test { 
    class Decimal { } 
} 

// File2.cs 
using Test; 
class DecimalIsNotdecimal { 
     void Method(decimal d) { ... } 
     void Method(Decimal d) { ... } // works! 
}