2011-12-07 56 views

回答

9

這樣的類型轉換在我遇到的所有Delphi實現中都是完全安全的。

但是,像這樣重新解釋類型轉換會除去類型檢查,但將來對源代碼所做的更改總會存在導致難以跟蹤錯誤的風險。如果可能,我會盡量避免投射。例如,您可以做的最簡單的事情就是避免在代碼中使用array of Byte作爲類型,並切換到TBytes

如果您必須施放,然後將其包裝在一個函數中以減輕我上面描述的風險。

function Bytes(const B: TByteDynArray): TBytes; 
begin 
    Result := TBytes(B); 
end; 
+4

在函數聲明後面添加一個'inline'將使代碼相對於生成的asm更加「透明」。 –

+1

@Arnaud是的,這是有道理的。基本上這個功能除了擊敗類型系統外沒有任何其他功能,因此它完美的內聯! –

+0

感謝您的編輯/附加點。 –

相關問題