根据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
}
答案 0 :(得分:2)
这只是无效的C#语法。字符串不是数组,它只是一个。尝试:
unsafe
{
string str = "d";
fixed (char* t = str)
{
char c1 = *t;
char c2 = t[0];
}
}
答案 1 :(得分:1)