Проблемы с Erlang NIF и потоками

У меня есть небольшая проблема с потоками в Erlang NIF. Вы можете посмотреть мой код здесь: http://pastebin.com/HMCj24Jp . Проблема в том, что когда я запускаю поток, он принимает некоторые аргументы и запускает функцию generate_binary . Это нормально, но когда я пытаюсь прочитать аргументы, все вылетает.

Возможно, это не самая сложная проблема, но я не смог найти никакой документации по этому поводу, поэтому я надеюсь, что некоторые из вас могут знать ответ. параметры с помощью .NET Класс OptionalAttribute. Параметры OptionalAttribute не требуется значение по умолчанию.

Я прочитал страницу OptionalAttribute в MSDN и выполнил поиск в Интернете (где показано, что многие люди, утверждающие, что параметры OptionalAttribute не могут быть использованы C #, полагаю, эти комментарии были сделаны до C # 4?), но я не могу найти ответ на два вопроса:

Если я использую OptionalAttribute для определения параметра C # как необязательного:

  1. какое значение будет использоваться, если я вызову этот метод и не указать значение этого параметра?
  2. будет ли это значение оцениваться во время компиляции или во время выполнения?

16
задан casperOne 2 February 2012 в 03:21
поделиться

1 ответ

Правила следующие:

  • Для параметров типа объект , Type.Missing передается.
  • Для других ссылочных типов передается null .
  • Для типов значений передается значение по умолчанию для типа значения .

Обратите внимание, что в случае всего, кроме параметров типа объект , это эквивалент default (T) .

Я был немного удивлен, поскольку спецификация C # 4.0 не указала, каким будет результат, и я ожидал, что он будет там.

Также (как указал Скотт Риппи в комментариях ), это оценивается во время компиляции, это не операция времени выполнения, что означает, что если у вас есть вызовы этого метода в других сборках которые уже развернуты, и вы измените необязательное значение, значение по умолчанию, переданное методу, не изменится , а не , если вы не скомпилируете все, что вызывает вызов метода в сборке.

12
ответ дан 30 November 2019 в 23:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: