|
ﻣﺒﺤﺚ : overloading
ﮔﺎھﻲ از اوﻗﺎت ﻻزم اﺳﺖ ﺗﺎ ﻧﮕﺎرش ھﺎی ﻣﺨﺘﻠﻔﻲ از ﻳﻚ ﺗﺎﺑﻊ داﺷﺘﻪ ﺑﺎﺷﯿﻢ. ﺑﺮای ﻣﺜﺎل ﺗﻌﺮﻳﻒ ﺳﻪ ﺗـﺎﺑﻊ ﺑـﺎ ﻳـﻚ ﻧـﺎم اﻣﺎ ﺑﺎ آرﮔﻮﻣﺎﻧﮫﺎی ﻣﺨﺘﻠﻒ. ﺑﻪ اﻳﻦ ﻧﻮع ﺗﻮاﺑﻊ و ﻳﺎ ﻣﺘﺪھﺎ اﺻﻄﻼﺣﺎ Overloaded Methods ﻣﻲ ﮔﻮﻳﻨﺪ . ( ﻓﻜﺮ ﻛـﻨﻢ آﻧـﺮا ﺳﺮﺑﺎرﮔﺬاری ﺗﻮاﺑﻊ ﺗﺮﺟﻤﻪ ﻛﺮده اﻧﺪ! ) ﺑﺮای ﻣﺜﺎل : ;(void myMethod(int p۱ ;(void myMethod(int p۱, int p۲ ;(void myMethod(int p۱, string s۱
ﻣﺜﺎل : ﻳﻚ ﺑﺮﻧﺎﻣـﻪ ی ﺳـﻲ ﺷـﺎرپ ﺟﺪﻳـﺪ consoleرا در VS.NETﺑـﺎز ﻛﻨﯿـﺪ و ﻧـﺎم آﻧـﺮا دراﺑﺘـﺪا ex۱۸ اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳﭙﺲ ﻛﺪ زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ :
;using System
namespace ex۱۸ } class Class۱
} [[STAThread (static void Main(string[] args } ;()writeIT
;(۲۱)writeIT
;()Console.ReadLine {
()public static void writeIT } ;( ".Console.WriteLine(" writeIT() Ver {
(public static void writeIT(int intI } ;( Console.WriteLine(" writeIT(intI) Ver. = " + intI {
{ {
ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :
١- ﻧﺤﻮه ی ﺗﻌﺮﻳﻒ دو ﺗﺎﺑﻊ ﺑﺎ ﻳﻚ ﻧﺎم را ﻣﻼﺣﻈﻪ ﻣﻲ ﻧﻤﺎﻳﯿﺪ. اﻳﻨﻜﺎر در زﺑﺎن ﺳﻲ ﻣﻤﻨﻮع اﺳﺖ! ٢- ﻛﺎﻣﭙﺎﻳﻠﺮ ﺑﻪ ﺻﻮرت ھﻮﺷﻤﻨﺪ ﺑﺮ اﺳﺎس ﻧﻮع و ﺗﻌﺪاد آرﮔﻮﻣﺎﻧﮫﺎی ورودی ، ورژن ﻣﻨﺎﺳﺐ را اﻧﺘﺨﺎب و اﺟﺮا ﻣـﻲ ﻛﻨﺪ.
ﻧﻤﻮﻧﻪ ی ﺿﻌﯿﻔﻲ از اﻳﻦ ﺑﺤﺚ در وی ﺑﻲ ۶ ﺑﻪ ﺻﻮرت ﺗﻌﺮﻳﻒ ﺗﻮاﺑﻌﻲ ﺑﺎ ﭘﺎراﻣﺘﺮھﺎی Optionalوﺟﻮد داﺷﺖ .
ﻣﺒﺎﺣﺚ ﺗﻜﻤﯿﻠﻲ آراﻳﻪ ھﺎ (آراﻳﻪ ھﺎی ﭼﻨﺪ ﺑﻌﺪی):
آراﻳﻪ ھﺎی ﻣﻌﻤﻮﻟﻲ (ﻳﻚ ﺑﻌﺪی) را ﻣﻲ ﺗﻮان ﻳﻚ ردﻳﻒ ﺑﺎ ﺗﻌﺪادی ﺧﺎﻧﻪ ﺧﺎﻟﻲ آﻣﺎده ی ﭘﺮ ﺷﺪن در ﻧﻈﺮ ﮔﺮﻓﺖ. آراﻳـﻪ ی دوﺑﻌﺪی را ﻣﻲ ﺗﻮان ﻣﺎﻧﻨﺪ ﻳﻚ ﺟﺪول ﺗﺸﻜﯿﻞ ﺷﺪه از ردﻳﻒ ھﺎ و ﺳﺘﻮن ھﺎ در ﻧﻈﺮ ﮔﺮﻓﺖ و اﻟﻲ آﺧﺮ... ﺳﻲ ﺷﺎرپ دو ﻧﻮع آراﻳﻪ ی ﭼﻨﺪ ﺑﻌﺪی را ﭘﺸﺘﯿﺒﺎﻧﻲ ﻣﻲ ﻛﻨﺪ : rectangular and jagged در ﻳﻚ آراﻳﻪ ی rectangular ھﺮ ردﻳﻒ ، ﻃﻮﻟﺶ ﺑﺎ ردﻳﻒ ﺑﻌﺪی ﻳﻜﻲ اﺳﺖ. آراﻳـﻪ ی jagged در ﺣﻘﯿﻘـﺖ آراﻳـﻪ اﻳـﻲ از آراﻳﻪ ھﺎ اﺳﺖ ، ﺑﻨﺎﺑﺮاﻳﻦ ھﺮ ﻛﺪام از آﻧﮫﺎ ﻣﻲ ﺗﻮاﻧﺪ ﻃﻮل ﻣﺨﺘﻠﻔﻲ داﺷﺘﻪ ﺑﺎﺷﺪ.
ﺗﻌﺮﻳﻒ ﻳﻚ آراﻳﻪ ی دوﺑﻌﺪی ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ : type [,] array-name
|