C# 从字符串转换为字符*仅复制第一个字符

C# 从字符串转换为字符*仅复制第一个字符,c#,unsafe,C#,Unsafe,我已经看过了大部分字符串到字符*的转换,所以答案是肯定的,但它对我来说不起作用。这是我的密码: public static void Main() { string name = "ELEM"; unsafe{ fixed(char* name_ptr = name) { Console.WriteLine(name_ptr->ToString()); } } } // Output: E 我需

我已经看过了大部分字符串到字符*的转换,所以答案是肯定的,但它对我来说不起作用。这是我的密码:

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

我需要这样做,因为我必须把一个字符传递给我的C++自定义DLL。为什么它只复制第一个字符,我如何才能正确地将字符串转换为字符*?

您只获得第一个字符,因为name\u ptr只是对单个字符的引用,当您调用
name\u ptr->ToString()
时,您实际上调用了
char.ToString()


您应该使用
StringBuilder
将字符串传递给C/C++DLL。请参阅。

改用StringBuilder实例。。。看这里