Я заметил, что некоторые из моих функций не выдают предупреждение "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, я получаю предупреждение)