Яка різниця між десятками? і десятковий

Я знаю, що це дурне запитання. Я намагаюсь вивчати ASP.Net MVC 4 сам і останнім часом я зіткнувся з сумнівом Підручник, який я використовую для вивчення MVC показує, що створення моделі MVC містить такий код

public decimal? cost{get;set;}

і мені цікаво, чому вони ставлять? в коді Підручник не пояснив, чому вони це зробили? в коді. Отже, моє запитання полягає в тому, яка різниця між десятковою та десяткою?

1

7 Відповіді

decimal? can have null value

в той час як десяткове не може мати значення null , він завжди повинен мати значення

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

Подивіться на наступний приклад

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

Ви не можете мати таку поведінку, що не має нульового типу

decimal foo = null;//produces compiler error, Cannot convert null to 'decimal'
4
додано

У VS 2005 ми представляємо новий тип з назвою "Nullable", який виглядає приблизно так (це насправді складніше, ніж це, але я хочу залишити приклад простим):

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

Ви можете використовувати цю структуру безпосередньо, але ми також додали деякий ярлик синтаксису, щоб зробити результуючий код набагато більш чистим. Перше - це введення нового синтаксису для оголошення нульового типу. Замість того, щоб друкувати:

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

int? x = 125;

You can read this in detail here

1
додано
Ви, напевно, можете написати опис себе, а не копіювати його з посилання. Я був трохи заплутаний на секунду, коли прочитав щось нове було введено в 8-річну версію Visual Studio.
додано Автор Robert Rouhani, джерело

У VS 2005 ми представляємо новий тип з назвою "Nullable", який виглядає приблизно так (це насправді складніше, ніж це, але я хочу залишити приклад простим):

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

Ви можете використовувати цю структуру безпосередньо, але ми також додали деякий ярлик синтаксису, щоб зробити результуючий код набагато більш чистим. Перше - це введення нового синтаксису для оголошення нульового типу. Замість того, щоб друкувати:

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

int? x = 125;

You can read this in detail here

1
додано
Ви, напевно, можете написати опис себе, а не копіювати його з посилання. Я був трохи заплутаний на секунду, коли прочитав щось нове було введено в 8-річну версію Visual Studio.
додано Автор Robert Rouhani, джерело

десятковий знак is nullable, це означає, що воно взагалі не може мати значення (нульове значення не 0). Ви можете, наприклад, передайте це своєму клієнту та покажіть текст "без даних" замість "0".

0
додано

десятковий знак is nullable, це означає, що воно взагалі не може мати значення (нульове значення не 0). Ви можете, наприклад, передайте це своєму клієнту та покажіть текст "без даних" замість "0".

0
додано

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
додано

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
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug