Почему infer не работает при объявлении массива как константы - PullRequest
0 голосов
/ 19 марта 2020

Этот код не работает

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"}

Мне просто нужно добавить как String () и изменить const на private shared.

Но почему это не удается? Я хочу постоянный массив в качестве моей константы. Я не собираюсь это менять. Кажется, что const - правильное ключевое слово. Почему не получается? И почему не делает вывод работает. Почему я должен добавить как строку ()

1 Ответ

1 голос
/ 19 марта 2020

Константы не могут быть универсального типа c или типа массива. Вот некоторая документация по этому .

. Утверждая ...

Const BASEARRAY = {"BTC", "ETH", ...}

Вы пытаетесь создать массив типов Object как константу, которая не допускается.

Итак, чтобы ответить на ваш вопрос, это просто так.

Если у вас нет намерений менять переменную BASEARRAY, просто установите его как ReadOnly, то есть , предназначенный для таких ситуаций, как эти .

Если не указывать тип (например, вы опускаете As String()), вы получаете ошибку, это потому, что у вас, вероятно, есть Option Strict On. Вот некоторая документация для этой ошибки, в частности , и вот некоторые вещи в Option Strict .

Не объявление типа делает тип неявным, что Option Strict On (без Option Infer On) запрещает. Оставляя Option Strict on, вы можете сказать ...

Private Shared ReadOnly BASEARRAY As String() = {"BTC", "ETH", "BNB"}

Осторожно, однако. Выполнение этого ReadOnly предотвращает присвоение ему другого массива, но делает разрешением манипулировать одним или несколькими его элементами массива.

Если этого уровня защиты недостаточно для вас, посмотрите ответ на этот вопрос о массивах только для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...