Почему нам не нужно использовать строку? str и для десятичной или int нам нужно использовать десятичную? цена = р? цена

Я новичок в C#. У меня путаница в нулевом условном операторе.

в случае строки каждый, кто использует эту строку

string name = p?.name;

но в случае десятичного числа или числа с плавающей запятой

decimal? price = p?.price;
int? quantity = p?.count; 

1 ответ

На самом деле "int" и "decimal" не являются ссылочными типами. в то время как строка ссылочный тип может содержать null и 'не обнуляемое значение', поэтому со строкой вам не нужно использовать ? и с decimal, int, bool и т. д. вам придется использовать ? как они не обнуляются.

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/value-types https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types

проверьте ссылку ниже, строка является ссылочным типом, а int является типом значения

Другие вопросы по тегам