Я прочитал многие из ненулевых вопросов и ответов. Похоже, что лучший способ приблизиться к ненулевым типам в C # (4.0) - взломать Jon Skeet NonNullable <> .
Однако, похоже, что C ++ / CLI решил большую часть проблемы, поддерживая управляемые ссылки: Foo%
(вместо нативного C ++ Foo&
). Компилятор делает эту работу, добавляя modreq(IsImplicitlyDereferenced)
к аргументу. Попытка вызвать такую функцию из C # приводит к:
'<FunctionName>' is not supported by the language
Есть ли что-нибудь лучше, чем NonNullable <> ?
Есть ли способ (разумно - т.е. без использования отражения) вызвать метод C ++ / CLI Foo::Method(Bar%)
из C #?
[edit] Кажется, в настоящее время нет ничего лучше, чем NonNullable <> ... Я хотел бы получить некоторые комментарии по поводу C ++ / CLI, поскольку он уже хотя бы частичное решение.