Преобразование из строки в символ * копирует только первый символ - PullRequest
0 голосов
/ 30 ноября 2018

Я просмотрел большинство ответов преобразования строки в символ *, но это не работает для меня.Вот мой код:

public static void Main() {
    string name = "ELEM";
    unsafe{
          fixed(char* name_ptr = name) {
              Console.WriteLine(name_ptr->ToString());
          }
    }
} 
// Output: E

Мне нужно сделать это, так как я должен передать char * в мою пользовательскую DLL C ++.Зачем копировать только первый символ, и как я могу правильно преобразовать строку в символ *?

1 Ответ

0 голосов
/ 30 ноября 2018

Вы получаете только первый символ, потому что name_ptr - не что иное, как ссылка на отдельный символ, а когда вы вызываете name_ptr->ToString(), вы фактически вызываете char.ToString().

Вы должны использовать StringBuilder вместо того, чтобы передавать строку в C / C ++ DLL.См. этот вопрос .

...