gpt4 book ai didi

arrays - 在可选数组参数中指定默认数组值

转载 作者:行者123 更新时间:2023-12-04 13:27:17 24 4
gpt4 key购买 nike

可选参数需要默认值,但我似乎无法将默认数组分配给可选数组参数。例如:

Optional ByVal myArray As Long() = Nothing ' This works

然而
Optional ByVal myArray As Long() = New Long() {0, 1} ' This isn't accepted.

IDE 告诉我“需要常量表达式”来代替 New Long() {0, 1} .

是否有分配默认常量数组的技巧,还是不允许?

最佳答案

它不是一个“常量表达式”,一个可以在编译时完全计算并产生一个可以存储在程序集元数据中的简单值的表达式。稍后在进行调用的其他代码中使用。在编译时检索可选值,而不是运行时,严格来说是编译器功能。

New 运算符必须在运行时执行,并且需要代码来执行此操作。因此,它不是一个常量表达式。简单的解决方法是使用 Nothing 并将代码放在方法体中:

Sub Foo(Optional ByVal myArray As Long() = Nothing)
If myArray Is Nothing Then myArray = New Long() {0, 1}
'' etc...
End Sub

关于arrays - 在可选数组参数中指定默认数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com