2

MSDN によると、安全でないコンテキストで変数のアドレスを取得できます。
安全でない宣言されたメソッドで変数のアドレスを取得できますが、すべての安全でないコンテキストで取得できないのはなぜですか?

static void Main(string[] args) {      
    //Managed code here
    unsafe {
        string str = "d";
        fixed (char* t = &str[0]) {// ERROR :  Cannot take the address of the given expression
        }
    }
    //Managed code here
}
4

2 に答える 2

2

有効な C# 構文ではありません。文字列は配列ではなく、配列のようにしか見えません。試す:

unsafe 
{
   string str = "d";
   fixed (char* t = str) 
   {
       char c1 = *t;
       char c2 = t[0];
   }
}
于 2013-02-26T20:53:19.550 に答える
1

文字列のアドレスを取得する正しい方法は次のとおりです。

char* t = str

http://msdn.microsoft.com/en-us/library/f58wzh21.aspx

于 2013-02-26T20:54:25.117 に答える