此代码未通过
Const BASEARRAY = {"BTC", "ETH", "BNB", "USDT", "PAX", "USDC", "XRP", "USDS", "TRX", "TRY", "BUSD", "NGN", "RUB", "EUR"}
将CONST更改为私有共享也不起作用。
Private Shared BASEARRAY As String() = {"BTC", "ETH", "BNB", "USDT", "PAX", "USDC", "XRP", "USDS", "TRX", "TRY", "BUSD", "NGN", "RUB", "EUR"}
不过效果不错。
Private Shared BASEARRAY = {"BTC", "ETH", "BNB", "USDT", "PAX", "USDC", "XRP", "USDS", "TRX", "TRY", "BUSD", "NGN", "RUB", "EUR"}
我只需要添加as String((并将const更改为private shared。
但为什么会失败呢?我想要一个常量数组作为我的常量。我不打算更改它。const似乎是正确的关键字。为什么失败?为什么推断不起作用呢。为什么我必须添加字符串((
常量不允许是泛型类型或数组类型。这里有一些相关文档。
通过声明。。。
Const BASEARRAY = {"BTC", "ETH", ...}
您正试图将Object
类型的数组实例化为常量,这是不允许的。
因此,为了回答您的问题,就是这样设计的
如果您无意更改BASEARRAY
变量,只需将其设置为ReadOnly
,它是为此类情况而设计的。
如果省略类型(如中,省略As String()
(会导致错误,那是因为您可能有Option Strict On
。这里有一些专门针对该错误的文档,还有一些关于Option Strict的内容。
不声明类型会使类型隐式,而Option Strict On
(没有Option Infer On
(不允许这样做。如果保留Option Strict,你可以说。。。
Private Shared ReadOnly BASEARRAY As String() = {"BTC", "ETH", "BNB"}
不过要小心。设置此ReadOnly
可以防止将另一个数组分配给它,但它确实允许操作其一个或多个数组成员。
如果这种保护级别对您来说还不够,请查看此问题关于真正只读阵列的答案。