Vb.net SUB或函数参数中的问号是什么意思?
刚刚在ado.net SQL Insert命令中找到它Vb.net SUB或函数参数中的问号是什么意思?,vb.net,function,Vb.net,Function,刚刚在ado.net SQL Insert命令中找到它 Public Sub a(b as Date?) 'Somecode End Sub 这个问号到底是什么 正如@Filburt所提到的,带问号的参数表示 请注意,您只能对确实可为空的数据类型使用这种方法。例如,字符串不能以这种方式使用 Public Sub a(s As String?) 'Some code End Sub 将产生以下编译错误 类型“String”必须是值类型或约束为“Structure”的类型参数,才
Public Sub a(b as Date?)
'Somecode
End Sub
这个问号到底是什么 正如@Filburt所提到的,带问号的参数表示 请注意,您只能对确实可为空的数据类型使用这种方法。例如,字符串不能以这种方式使用
Public Sub a(s As String?)
'Some code
End Sub
将产生以下编译错误
类型“String”必须是值类型或约束为“Structure”的类型参数,才能与“Nullable”或Nullable修饰符“?”一起使用
可设为空的数据类型
- 布尔
- 字节
- 煤焦
- 十进制
- 双重的
- 枚举
- 浮动
- int
- 长的
- 斯拜特
- 短
- 结构
- 尤因
- 乌龙
- 乌什特
Public Sub a(s As String?)
'Some code
End Sub
将产生以下编译错误
类型“String”必须是值类型或约束为“Structure”的类型参数,才能与“Nullable”或Nullable修饰符“?”一起使用
可设为空的数据类型
- 布尔
- 字节
- 煤焦
- 十进制
- 双重的
- 枚举
- 浮动
- int
- 长的
- 斯拜特
- 短
- 结构
- 尤因
- 乌龙
- 乌什特
b as Date?
是我当时的一个糟糕的代码示例,因为DateTime
也不能为空。从技术上讲是的,但这个问题仍然有效。它必须是值类型,而不是引用类型。诸如String
和DateTime
之类的引用类型只能设置为Nothing
,而对值类型执行此操作只会将其设置为默认值。@AFriend:aDateTime
在默认情况下不可为null,它是一种值类型。@danielshillock:调用列表或列表中的项目以获得“可为null的类型”可能会引起混乱。它们可以设置为可为null,但默认情况下不可为null。它们是所谓的值类型(结构),总是有一个值。默认情况下,只有引用类型(类)可为空。-另外,Date
或DateTime
也是列表的一部分。很高兴知道。多亏了你和@FilburtGuess,b as Date?
是我当时的一个糟糕的代码示例,因为DateTime
也不能为空。从技术上讲是的,但这个问题仍然有效。它必须是值类型,而不是引用类型。诸如String
和DateTime
之类的引用类型只能设置为Nothing
,而对值类型执行此操作只会将其设置为默认值。@AFriend:aDateTime
在默认情况下不可为null,它是一种值类型。@danielshillock:调用列表或列表中的项目以获得“可为null的类型”可能会引起混乱。它们可以设置为可为null,但默认情况下不可为null。它们是所谓的值类型(结构),总是有一个值。默认情况下,只有引用类型(类)可为空。-此外,Date
或DateTime
也是列表的一部分。