Можно ли включить предупреждение «Функция не возвращает значение для всех путей кода» для функций «Тип значения»? - PullRequest
0 голосов
/ 25 апреля 2019

Я заметил, что некоторые из моих функций не выдают предупреждение "Function doesn't return a value on all code paths", хотя не все их пути возвращают значение. После некоторых экспериментов и исследований, похоже, что функции, которые возвращают тип данных «Тип значения» (как определено здесь ), не выдают предупреждение, тогда как функции, которые возвращают тип данных «Тип ссылки», будут выбрасывать предупреждение. Я бы предположил, что это потому, что типы значений имеют значение по умолчанию (обычно 0), в то время как значение по умолчанию для ссылочных типов - Nothing.

Таким образом, я могу понять, почему предупреждение обычно не выдается для функций типа значения. Однако иногда важно убедиться, что функция явно возвращает значение по всем путям, даже если эта функция возвращает тип значения. Возможно ли включить это предупреждение для функций, которые возвращают тип значения, таких как логические, двойные или функции перечислителя?


РЕДАКТИРОВАТЬ: По запросу, вот пример функции, которая не выдает предупреждение:
Function TestFunction() As Double
    If Now.DayOfWeek = DayOfWeek.Monday Then
        Return 10
    End If
End Function

(если я изменяю тип возвращаемого значения на String, я получаю предупреждение)

1 Ответ

3 голосов
/ 25 апреля 2019

В Свойства проекта> Компиляция есть раздел под названием " Предупреждения конфигурации ". Там вы можете установить, хотите ли вы, чтобы такие условия были такими, как предупреждение, ошибка или нет.

В этом случае условие «Функция, возвращающая тип внутреннего значения без возвращаемого значения» , может быть установлено на «Нет». Также было бы возможно отключить его с помощью #Disable Warning BC42353

...