我的代碼如下:如何解決C#中不安全指針的錯誤?
public static unsafe bool ExistInURL(params object[] ob)
{
void* voidPtr = (void*) stackalloc byte[5];//Invalid expression term
*((int*) voidPtr) = 0;
while (*(((int*) voidPtr)) < ob.Length)
{
if ((ob[*((int*) voidPtr)] == null) || (ob[*((int*) voidPtr)].ToString().Trim() == ""))
{
*((sbyte*) (voidPtr + 4)) = 0;//Cannot apply operator '+' to operand of type 'void*' and 'int'
goto Label_004B;
}
*(((int*) voidPtr))++;//The left-hand side of an assignment must be a varibale,property or indexer
}
*((sbyte*) (voidPtr + 4)) = 1;
Label_004B:
return *(((bool*) (voidPtr + 4)));//Cannot apply operator '+' to operand of type 'void*' and 'int'
}
的問題是,當我試圖建立或運行項目我得到了很多的錯誤。 任何人有任何想法?
這是一個質量很差的問題。如果你不知道它們是如何工作的,你爲什麼要搞亂不安全的指針? –
你想幹什麼,除了弄亂指針? – xanatos
我從彙編反射器恢復此代碼 –