2010-11-03 30 views
5

我有一個聲明,在聲明中,我想設置一個高度是一個指向雙,但得到的錯誤mesasage:C#:指向double

" Error 1 Pointers and fixed size buffers may only be used in an unsafe context"

有人可以告訴我正確的方式來聲明雙精度型指針?

下面是我的聲明,我將高度設置爲雙重指針(double* height),但會收到錯誤消息。

private static extern bool GetElevation(double dLat, double dLon, double* height); 

回答

6

你extern聲明也許應該是:

private static extern bool GetElevation(double dLat, double dLon, ref double height); 

希望這有助於!

編輯

question(和接受的答案)可能會脫落一些關於這個問題光。它談到了refout(不知道哪個更適合你的情況)和編組。

3

我想你應該:

  1. 瞭解更多關於使用指針,什麼不安全塊是在C#中,這裏是一個很好的resource
  2. 標記您的「不安全」的功能,見下圖:

private static unsafe extern bool GetElevation(double dLat, double dLon, double* height)

一旦完成了這一切,那麼你可以用/ unsafe開關編譯。