Не пойму что за знак "?" после типа переменной. Его предназначение и свойства
Открыл для себя вот такую новую синтаксическую "конструкцию". Не могу найти ответ в гугле. Подскажите как это правильно называется и какие функции у этой "штуки". Как я догадался логически, одна из фишек это метод HasValue, что тоже кажется странным для меня, ибо почему не использовать value == null ? 1 : 0;
Понимаю, что скорее всего вопрос глупый, но я только осваиваю язык, поэтому вот...)
Ответы (1 шт):
? оператор используется в коде следующим образом:
SomeType? myVariable, данная запись эквивалентнаNullable<SmthType> myVariable, гдеSmthType-struct. В C# 8.0 были добавлены nullable reference types, позволяющие делатьnullableеще и классы.?используется при вызове методов у классов. Это проверка наnull. В данном случае, если объект классаmyClassObjectимеет значениеnull- то, метод не будет вызван.
myClassObject?.SmthMethod();
Тоже самое, что и:
if(myClassObject != null)
{
myClassObject.SmthMethod();
}
- Для условных конструкций:
int a = 0;
if(boolVariable == true)
{
a++
}
else
{
a--;
}
Почти тоже самое, только результат нужно записывать в какую-нибудь переменную
int a = 0;
int c = boolVariable == true ? a++ : a--; //c - результат выражения a++ или a--