|
نوشته شده توسط فرزاد
|
|
ﭼﮕﻮﻧﻪ از ﻳﻚ ﺗﺎﺑﻊ ﺑﯿﺶ از ﻳﻚ ﺧﺮوﺟﻲ درﻳﺎﻓﺖ ﻛﻨﯿﻢ ؟
ﻇﺎھﺮا ﺑﻪ ﻧﻈﺮ ﻣﻲ رﺳﺪ ﻛﻪ ﺗﻮاﺑﻊ ﻓﻘﻂ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻳﻚ return داﺷﺘﻪ ﺑﺎﺷﻨﺪ و ﺑﻼﻓﺎﺻﻠﻪ ﭘـﺲ از ﻓﺮاﺧـﻮاﻧﻲ return ﻛـﺎر ﺗﺎﺑﻊ ﭘﺎﻳﺎن ﻳﺎﻓﺘﻪ اﺳﺖ. در ﺳﻲ ﺷﺎرپ دو ﻛﻠﻤﻪ ی ﻛﻠﯿﺪی ﺑﻪ ﻧﺎم ھﺎی ref و out اﺿﺎﻓﻪ ﺷﺪه اﻧﺪ ﻛﻪ اﻳﻦ اﻣﺮ را ﺳﺎده ﺗﺮ ﻣﻲ ﻛﻨﻨﺪ. اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ی ﻛﻠﯿﺪی : out
از out در ﺗﻌﺮﻳﻒ ﺗﺎﺑﻊ ﻗﺒﻞ از ﻣﻌﺮﻓﻲ ﻧـﻮع آرﮔﻮﻣـﺎن ورودی اﺳـﺘﻔﺎده ﻣـﻲ ﻛﻨـﯿﻢ . در اﻳـﻦ ﺣﺎﻟـﺖ ﺑﺠـﺎی اﻳﻨﻜـﻪ ﺑـﻪ اﻳـﻦ آرﮔﻮﻣﺎن ، آرﮔﻮﻣﺎن ورودی ﺑﮕﻮﻳﯿﻢ ، ﻣﻲ ﺗﻮان آﻧﺮا آرﮔﻮﻣﺎن ﺧﺮوﺟﻲ ﻧﺎﻣﯿـﺪ. ﺗـﺎ ﻳـﻚ ﻣﺜـﺎل را در اﻳـﻦ زﻣﯿﻨـﻪ ﺑـﺎ ھـﻢ ﻣـﺮور ﻧﻜﻨﯿﻢ اﻳﻦ ﻣﻮرد ﻣﻔﮫﻮم ﻧﺨﻮاھﺪ ﺑﻮد :
ﻣﺜﺎل : ﻳﻚ ﺑﺮﻧﺎﻣـﻪ ی ﺳـﻲ ﺷـﺎرپ ﺟﺪﻳـﺪ consoleرا در VS.NETﺑـﺎز ﻛﻨﯿـﺪ و ﻧـﺎم آﻧـﺮا دراﺑﺘـﺪا ex۱۵ اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳﭙﺲ ﻛﺪ زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ : ;using System
namespace ex۱۵ } class Class۱ }
( public static int TestOut( out char i } ;'i = 'b ;۱- return {
[[STAThread (static void Main(string[] args } ;char i // variable need not be initialized ;((Console.WriteLine(TestOut(out i ;(Console.WriteLine(i ;()Console.ReadLine { { {
ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق : ١- در ﺗﺎﺑﻊ TestOutآرﮔﻮﻣﺎن iاز ﺑﺎ ﻛﻠﻤﻪ ی ﻛﻠﯿﺪی out ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ. ﻳﻌﻨﻲ اﻳﻨﻜﻪ درون ﺗﺎﺑﻊ ھـﺮ ﮔﻮﻧـﻪ ﺗﻐﯿﯿﺮی روی i اﻧﺠﺎم ﺷﻮد ، ﺧﺎرج از ﺗﺎﺑﻊ ﻗﺎﺑﻞ دﺳﺘﺮﺳﻲ اﺳﺖ. ٢- ﺗﻮاﺑﻌﻲ ﻛﻪ دارای آرﮔﻮﻣﺎﻧﮫﺎﻳﻲ ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎ ﻛﻠﻤﻪ ی ﻛﻠﯿـﺪی outھـﺴﺘﻨﺪ ﻧﯿـﺰ ﻣـﻲ ﺗﻮاﻧﻨـﺪ از return ھـﻢ اﺳﺘﻔﺎده ﻛﻨﻨﺪ. ھﻤﺎﻧﻨﺪ ﻣﺜﺎل ﻓﻮق.
|