none
C#的類型轉換問題

    Question

  • 各位專家,能否貼個C#中各種數据類型轉換的心得出來分享一下。
    Wednesday, May 24, 2006 1:02 AM

Answers

  • 不知道你想問的是說像是double或int的的數字型別?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconenumerationformatstrings.asp

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconenumerationformatstrings.asp

    我都查這個表,將要輸出ToString中,使用自訂格式設定,還可以設定成轉成16或8進位方式表示。

    如果你指的是數字間的型別轉換,要考慮到資料型別的長度問題:

    double或decimal 轉 Int 因為長度 double > int,自動轉換時,
    1、只會存至整數部分。
    2、整數部分,有可能超過 Int 的長度。(因為double在存整數時,是用精準度位置及 10^n 次方數在存),可能會發生溢位的問題。

     

    如果說你指的型別轉換是指繼承型別間的轉換?

    如果是繼承之間的轉換的話,就是只能子繼承型別的轉到Base型別。這樣子可以用assignment直接自接動態轉換,不用Cast。(即隱性轉換)

    反之,在你做DownCasting的轉換時,因為就必須做Cast的轉換了。而這必須在程式過程中做指定型別的轉換。(即強行轉換)
    要小心注意這個方式中,你的物件是否是Null,或是與指定型別不相符,而使得程式錯誤中斷。所以要做Check是否發生類似這些狀況。

    Wednesday, May 24, 2006 2:27 AM

All replies