Professional Documents
Culture Documents
Conversion
Conversion
Operators and
Expressions
اﻟﺘﺤﻮﯾﻞ ﺑﯿﻦ أﻧﻮاع اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻟﻐﺔ C#
إن ﻧﺎﺗﺞ ﻋﻣﻠﯾﺔ ﺟﻣﻊ ﻣﺗﻐﯾرﯾن ﻣن ﻧوع intھو رﻗم ﻣن ﻧوع ،intإﻻ أن اﻟﻣﺗرﺟم ﻟم ﯾﻌطﻲ ﺧطﺄ ﻋﻧد ﻗﯾﺎﻣﻧﺎ ﺑﺈﺳﻧﺎد
ﻧﺎﺗﺞ ﻋﻣﻠﯾﺔ اﻟﺟﻣﻊ إﻟﻰ اﻟﻣﺗﻐﯾر resultرﻏم اﺧﺗﻼف اﻧواع اﻟﺑﯾﺎﻧﺎت ،ﺣﯾث أﻧﮫ ﻗﺎم ﺑﺷﻛل ﺿﻣﻧﻲ ﺑﺗﺣوﯾل اﻟﺑﯾﺎﻧﺎت
ﻣن ﻧوع intإﻟﻰ ﻧوع . float
إذا ،ﻣﺗﻰ ﯾﺟب ﻋﻠﯾﻧﺎ ﺗﺣوﯾل اﻟﺑﯾﺎﻧﺎت ﺑﺷﻛل ﺻرﯾﺢ ﻹﺟراء ﻋﻣﻠﯾﺔ ﺣﺳﺎﺑﯾﺔ؟
ﻟﺣل ھذه اﻟﻣﺷﻛﻠﺔ ﯾﺟب ﻋﻠﯾﻧﺎ إﺟراء ﻋﻣﻠﯾﺔ ﺗﺣوﯾل ﺑﯾﺎﻧﺎت ﺑﺷﻛل ﺻرﯾﺢ ﻛﻣﺎ ﻓﻲ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻲ:
أﻧﻮاع ﻋﻤﻠﯿﺎت اﻟﺘﺤﻮﯾﻞ
ﯾﻣﻛن ﺗﻘﺳﯾم ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل ﺑﯾن أﻧواع اﻟﺑﯾﺎﻧﺎت إﻟﻰ ﺛﻼﺛﺔ ﻣﺟﻣوﻋﺎت رﺋﯾﺳﯾﺔ:
ﯾﻣﻛن إﺟراء ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل اﻟﺻرﯾﺢ ﺑﯾن أﻧواع اﻟﺑﯾﺎﻧﺎت اﻟﺗﺎﻟﯾﺔ ﻓﻘط وھﻲ اﻟﺑﯾﺎﻧﺎت اﻟرﻗﻣﯾﺔ ﻓﻘط
ﺛﺎﻧﯿﺎ ً :اﻟﺘﺤﻮﯾﻞ اﻟﺼﺮﯾﺢ explicit conversion
ﻹﺟراء ﻋﻣﻠﯾﺔ ﺗﺣوﯾل ﻧوع اﻟﺑﯾﺎﻧﺎت ﺑﺷﻛل ﺻﺣﯾﺢ ،ﯾﺟب اﺳﺗﺧدام ﻣﺷﻐل ﺗﺣوﯾل اﻟﺑﯾﺎﻧﺎت )،(data type
اﻟﻣﺛﺎل اﻟﺗﺎﻟﻲ ﯾوﺿﺢ ﻛﯾﻔﯾﺔ اﺳﺗﺧدام ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل اﻟﺻرﯾﺢ ﻟﻠﺑﯾﺎﻧﺎت واﺣﺗﻣﺎﻟﯾﺔ ﻓﻘدان اﻟﺑﯾﺎﻧﺎت ﻓﻲ ﺑﻌض
اﻟﺣﺎﻻت.
ﺛﺎﻧﯿﺎ ً :اﻟﺘﺤﻮﯾﻞ اﻟﺼﺮﯾﺢ explicit conversion
ﻟﯾس ھذا ﻓﺣﺳب ،ﺣﺗﻰ ﻟو ﻛﺎﻧت أﻧواع اﻟﺑﯾﺎﻧﺎت أرﻗﺎم ﺻﺣﯾﺣﺔ ،ﻓﺈن ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل ﻣن ﻧوع ﺑﯾﺎﻧﺎت ذو
ﻣﺟﺎل أوﺳﻊ ﻟﺗﻣﺛﯾل اﻷرﻗﺎم اﻟﺻﺣﯾﺣﺔ إﻟﻰ ﻧوع ﺑﯾﺎﻧﺎت ذو ﻣﺟﺎل أﺻﻐر ﺳﯾﺗم ﻓﻘدان اﻟﻘﯾﻣﺔ ﺑﺎﻟﻛﺎﻣل إذا ﻛﺎن
ﻟﯾس ﺑﺎﻹﻣﻛﺎن ﺗﻣﺛﯾﻠﮫ.
explicit conversion اﻟﺘﺤﻮﯾﻞ اﻟﺼﺮﯾﺢ:ً ﺛﺎﻧﯿﺎ
explicit conversion اﻟﺘﺤﻮﯾﻞ اﻟﺼﺮﯾﺢ:ً ﺛﺎﻧﯿﺎ
ﺛﺎﻟﺜﺎ ً :ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ إﻟﻰ ﺳﻠﺴﻠﺔ ﻧﺼﯿﺔ string
ﻓﻲ ﻟﻐﺔ C#ﯾﻣﻛﻧﻧﺎ ﺗﺣوﯾل أي ﻧوع ﺑﯾﺎﻧﺎت إﻟﻰ ﺳﻠﺳﻠﺔ ﻧﺻﯾﺔ ،stringﻓﻌﻣﻠﯾﺔ اﻟﺗﺣوﯾل إﻟﻰ ﺳﻠﺳﻠﺔ ﻧﺻﯾﺔ
ﺗﺗم ﺑﺷﻛل آﻟﻲ ﻋﻧد اﺳﺗﺧدام ﻣﺷﻐل اﻟوﺻل ) (+ﺑﯾن ﺳﻠﺳﻠﺔ ﻧﺻﯾﺔ واﻟﻣﻌﺎﻣل اﻟﺛﺎﻧﻲ ﻟﯾس ﺳﻠﺳﻠﺔ ﻧﺻﯾﺔ،
وﻓﻲ ھذه اﻟﺣﺎﻟﺔ ﺳﯾﺗم ﺗﺣوﯾل اﻟﻣﻌﺎﻣل اﻟﺛﺎﻧﻲ إﻟﻰ ﺳﻠﺳﻠﺔ ﻧﺻﯾﺔ ﺑﺷﻛل آﻟﻲ ،ﺷﺎھد اﻟﻣﺛﺎل اﻟﺗﺎﻟﻲ: