Wat is het verschil tussen decimalen? en decimaal

Ik weet dat dit een domme vraag is. Ik probeer ASP.Net MVC 4 zelf te bestuderen en onlangs ben ik een twijfelachtige ervaring tegengekomen. De tutorial die ik gebruik om MVC te bestuderen, laat zien dat een MVC-modelcreatie de volgende code bevat

public decimal? cost{get;set;}

en ik vraag me af waarom ze zetten? in de code De tutorial legde niet uit waarom ze dat plaatsten? in de code. Dus mijn vraag is wat het verschil is tussen decimaal en decimaal?

1

7 antwoord

decimal? can have null value

terwijl decimal de waarde null niet kan hebben, moet deze altijd een waarde hebben

more about nullable types on http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx

bekijk het volgende voorbeeld

decimal? foo = null;//value is null
foo = 5.5M; //value is 5.5
foo = null;//value is null again

je kunt dit gedrag niet hebben met niet nullable type

decimal foo = null;//produces compiler error, Cannot convert null to 'decimal'
4
toegevoegd

In VS 2005 introduceren we een nieuw type genaamd "Nullable", dat er ongeveer zo uitziet (het is eigenlijk complexer dan dit, maar ik wil het voorbeeld eenvoudig houden):

struct Nullable
{
    public bool HasValue;
    public T Value;
} 

U kunt deze struct direct gebruiken, maar we hebben ook een aantal snelkoppelingsyntaxis toegevoegd om de resulterende code veel schoner te maken. De eerste is de introductie van een nieuwe syntaxis voor het declareren van een null-type. In plaats van te typen:

Nullable x = new Nullable(125); I can write:

int? x = 125;

You can read this in detail here

1
toegevoegd
U moet waarschijnlijk zelf een beschrijving schrijven in plaats van deze van de link te kopiëren. Ik was een beetje in de war toen ik las dat er iets nieuws werd geïntroduceerd in een 8 jaar oude versie van Visual Studio.
toegevoegd de auteur Robert Rouhani, de bron

In VS 2005 introduceren we een nieuw type genaamd "Nullable", dat er ongeveer zo uitziet (het is eigenlijk complexer dan dit, maar ik wil het voorbeeld eenvoudig houden):

struct Nullable
{
    public bool HasValue;
    public T Value;
} 

U kunt deze struct direct gebruiken, maar we hebben ook een aantal snelkoppelingsyntaxis toegevoegd om de resulterende code veel schoner te maken. De eerste is de introductie van een nieuwe syntaxis voor het declareren van een null-type. In plaats van te typen:

Nullable x = new Nullable(125); I can write:

int? x = 125;

You can read this in detail here

1
toegevoegd
U moet waarschijnlijk zelf een beschrijving schrijven in plaats van deze van de link te kopiëren. Ik was een beetje in de war toen ik las dat er iets nieuws werd geïntroduceerd in een 8 jaar oude versie van Visual Studio.
toegevoegd de auteur Robert Rouhani, de bron

decimale? ist nullable, dat betekent dat het helemaal geen waarde heeft (null niet 0). U kunt bijvoorbeeld geef dit door aan je klant en toon een tekst "geen gegevens" in plaats van "0".

0
toegevoegd

decimale? ist nullable, dat betekent dat het helemaal geen waarde heeft (null niet 0). U kunt bijvoorbeeld geef dit door aan je klant en toon een tekst "geen gegevens" in plaats van "0".

0
toegevoegd

decimal is a value type. Adding the question mark makes it Nullable. http://msdn.microsoft.com/en-us/library/1t3y8s4s%28VS.80%29.aspx

0
toegevoegd

decimal is a value type. Adding the question mark makes it Nullable. http://msdn.microsoft.com/en-us/library/1t3y8s4s%28VS.80%29.aspx

0
toegevoegd