В C ++ рекомендуется везде иметь постоянную корректность. Но поскольку в мире .Net содержимое строки не может быть изменено (будет создана новая строка), я все еще пишу String ^ const?
Нет. Просто передайте дескриптор непосредственно в строку: method(String^ string)
method(String^ string)