Я где-то слышал, что вы можете спуститься на С++ непосредственно внутри кода С#.
Как это делается? Или я неправильно понял?
Примечание. Я не имею в виду С++/CLI.
Ответ 1
Возможно, вы думаете о unsafe blocks, где вы можете написать код, который очень похож на С++, поскольку вы можете использовать указатели.
Ответ 2
Вы слышали неправильно.
Ответ 3
Вы можете спуститься к сборке с C, потому что C является инструкцией-полу-агностической сборкой.
Вы можете спуститься на C из С++, потому что С++ - это C плюс некоторые другие вещи, которые делают его божественно уродливым или ужасно красивым, в зависимости от вашей перспективы.
Вы не можете спуститься с С# на С++, потому что это совершенно разные вещи. Между ними нет прямой связи, кроме синтаксиса фигурных скобок и точек с запятой. С# не является надмножеством С++, ни его подмножества, ни его родным братом (но, возможно, вторым кузеном).
Тем не менее, С# предоставляет средства для взаимодействия с внешним кодом на всех уровнях абстракции, от Platform-Invoke (вызывающие функции, написанные на C) до COM, для самых разных видов. Но сам С# напрямую не связан с этими вещами.
Ответ 4
Зачем вам это нужно? Вы можете ссылаться на родные библиотеки C, но я очень сомневаюсь, что вы можете запускать собственный код из управляемого кода.
Ответ 5
Вы можете легко взаимодействовать с объектами COM с .NET.