Функция, возвращающая универсальный тип, допускающий значение NULL, не возвращает правильный типC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Функция, возвращающая универсальный тип, допускающий значение NULL, не возвращает правильный тип

Сообщение Anonymous »


Я пытаюсь определить функцию, которая возвращает версию переданного значения, допускающую значение NULL, а затем применяет ее с логическим значением.

с использованием системы; #nullable включить Программа общественного класса { общественная статическая пустота Main() { Console.WriteLine(Test(true, true) ?? false); } публичная статика A? Test(A val, bool useNull) => использоватьNull ? по умолчанию (A?): значение; } Однако это дает мне ошибку:

Ошибка компиляции (строка 11, столбец 21): оператор '??' нельзя применить к операндам типа bool и bool

Но мне не совсем понятно, почему выдается эта ошибка - ведь Test() должен возвращать тип bool?, а не bool, поэтому использование ?? должно быть совершенно законным.

Это ошибка в функции C#, допускающей значения NULL, или я неправильно понимаю, как она должна работать?

Как бы то ни было, если я перепишу Test(), чтобы он был неуниверсальным, похоже, это сработает:

public static bool? Test(bool val, bool useNull) => использоватьNull ? ноль: вал; Но я пытаюсь понять, почему общая версия не работает.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»