У меня есть следующая строка кода:
CType(IIf(CBool(product.IsDiscontinued Is Nothing Or product.IsDiscontinued = True), False, True), Boolean?)
Что означает Boolean? в конце. Я видел, что он используется и для других типов данных.
Boolean?
? в конце - это сокращение для Nullable<T>, в данном случае Nullable<Boolean>.
?
Nullable<T>
Nullable<Boolean>
Использование Nullable позволяет хранить нулевое значение внутри типа значения, которое иначе было бы невозможно.
Это Nullable(Of Boolean).
Nullable(Of Boolean)
Это позволяет типам значений быть Nothing.
Nothing
Nullable ... Это Nullable Boolean ...
Как быстро, в конце, они могут создать удовольствие от бокса / распаковки, если вы не будете осторожны ...
Вот хорошая статья, объясняющая это (хотя она написана для c #)
http://msmvps.com/blogs/luisabreu/archive/2008/04/26/c-and-nullable-value-types.aspx