Это не значит, что F # не позволяет вам возвращать ноль.
Это потому, что тогда часть и другая часть имеют разные типы.
Вы можете использовать Тип опции .
let retVal =
if reader.Read() then
Some (reader.GetString(0), getBytesData reader 1, reader.GetDateTime(2))
else
None
когда вы используете retVal
, вы используете сопоставление с образцом:
match retVal with
| Some v -> ...
| None -> // null case