2009-09-02 56 views
6

何時可以安全使用隱式轉換?什麼時候應該使用隱式投射?

使用案例:我正在處理一組需要專門照顧的com對象(Marshal.ReleaseComObject)。是否可以創建一個隱式轉換回實際com對象的包裝類?

有什麼情況當我不應該使用隱式轉換?

+4

只是挑剔:不存在「隱式轉換」沒有這樣的事。您可以使用*轉換操作符*來告訴編譯器執行*顯式轉換*,或者可以省略轉換操作符並執行*隱式轉換*,但不存在*隱式轉換*。 * cast *是出現在源代碼中的東西;如果它沒有出現,那麼就沒有* cast *。 – 2009-09-02 19:34:40

回答

1
  1. 您需要執行此操作很多。
  2. 沒有辦法避免演員陣容。
  3. 作爲轉換/投影功能並不能更好地表現出來。換句話說,在劇組之後它必須是「同一個對象」。
  4. 您可以往返原始對象。 (但並不隱含)
  5. 它不會混淆現有的或將來的函數重載。

我平時總結這些點爲「從不」,但諷刺你的使用情況實際上聽起來像一個郎中......

3

您應該在(且僅當)確認以下情況時使用隱式轉換:
1.轉換時沒有信息(數據)丟失(或可能丟失)。
2.不會拋出異常。
3.不會發生靜默失敗(您將收到退化的數據)。

相關問題