admin
16 / February / 1970, 11:36 AM
ﻗﺴﻤﺖ ١
مقدمه
در ﻃﻲ ﺳﻠﺴﻠﻪ ﻣﻘﺎﻻﺗﻲ ﻣﻲ ﺧﻮاھﯿﻢ ﺑـﺎ # Cﺑﯿـﺸﺘﺮ آﺷـﻨﺎ ﺷـﻮﻳﻢ. ﻓـﺮض اﻳـﻦ ﻣﻘـﺎﻻت ﺑـﺮ اﻳـﻦ اﺳـﺖ ﻛـﻪ آﺷـﻨﺎﻳﻲ ﻣﺨﺘﺼﺮی ﺑﺎ زﺑﺎﻧﮫﺎی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ دارﻳﺪ ، ھﺮ ﭼﻨﺪ ﻛﺎر ﻣﺎ ﺗﻘﺮﻳﺒﺎ از ﺻﻔﺮ ﺷـﺮوع ﻣـﻲ ﺷـﻮد و ھـﺪف آن ﺳـﺎدﮔﻲ هرﭼﻪ ﺑﯿﺸﺘﺮ اﺳﺖ.
# Cاز دو زﺑﺎن ++ Cو Java ﻣﺘﻮﻟﺪ ﺷـﺪه اﺳـﺖ! ﺣـﺎوی ﺑـﺴﯿﺎری از ﺟﻨﺒـﻪ ھـﺎی ++ Cﻣـﻲ ﺑﺎﺷـﺪ اﻣـﺎ وﻳﮋﮔـﻲ ھـﺎی ﺷﻲء ﮔﺮاﻳﻲ ﺧﻮدش را از ﺟﺎوا ﺑﻪ ارث ﺑﺮده اﺳﺖ.
# Cاﮔﺮﭼﻪ از ++ Cﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ اﻣﺎ ﻳﻚ زﺑﺎن "ﺧﺎﻟﺺ" ﺷﻲء ﮔﺮا ( ( Object Oriented ﻣﻲ ﺑﺎﺷﺪ. ھﺮ دو زﺑﺎن ﻳـﺎد ﺷﺪه ﺟﺰو زﺑﺎﻧﮫﺎی ھﯿﺒﺮﻳﺪ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ اﻣﺎ ﻃﺮاﺣﺎن # Cاﻳﻦ ﻣﻮرد را ﺑﻪ اﻧﺪازه ی ++ Cﻣﮫﻢ ﺗﻠﻘﻲ ﻧﻜـﺮده اﻧـﺪ. ﻳﻚ زﺑﺎن ھﯿﺒﺮﻳﺪ اﺟﺎزه ی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﺎ ﺷﯿﻮه ھﺎی ﻣﺨﺘﻠﻒ را ﻣﯿﺴﺮ ﻣﻲ ﻛﻨﺪ. دﻟﯿـﻞ اﻳﻨﻜـﻪ ++ Cھﯿﺒﺮﻳـﺪ اﺳـﺖ ، اﻳﻦ اﺳﺖ ﻛﻪ ﻗﺮار ﺑﻮده ﺗﺎ ﺑﺎ زﺑﺎن Cﺳﺎزﮔﺎر ﺑﺎﺷﺪ و ھﻤﯿﻦ اﻣﺮ ﺳـﺒﺐ ﮔﺮدﻳـﺪه ﺗـﺎ ﺑﻌـﻀﻲ از ﺟﻨﺒـﻪ ھـﺎی ++ Cﺑـﺴﯿﺎر ﭘﯿﭽﯿﺪه ﺷﻮﻧﺪ.
زﺑﺎن ﺳﻲ ﺷﺎرپ ﻓﺮض اش ﺑﺮ اﻳﻦ اﺳﺖ ﻛﻪ ﺷﻤﺎ ﻣﻲ ﺧﻮاھﯿﺪ ﺗﻨﮫﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲء ﮔﺮا اﻧﺠﺎم دھﯿـﺪ و ھﻤﺎﻧﻨـﺪ ++C *ﻣﺨﻠﻮﻃﻲ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ روﻳﻪ اﻳﻲ ( ( Proceduralو ﺷﻲء ﮔﺮا را ﻧﻤـﻲ ﺧﻮاھﯿـﺪ ﺑـﻪ ﭘﺎﻳـﺎن ﺑﺮﺳـﺎﻧﯿﺪ. ﺑﻨـﺎﺑﺮاﻳﻦ ﺑﺎﻳﺪ ﻃﺮز ﻓﻜﺮ ﺧﻮدﺗﺎن را ﺑﺎ دﻧﯿﺎی ﺷﻲء ﮔﺮاﻳﻲ ﺗﻄﺒﯿﻖ دھﯿـﺪ. در اداﻣـﻪ ﺧﻮاھﯿـﺪ دﻳـﺪ ﻛـﻪ در ﺳـﻲ ﺷـﺎرپ ھـﺮ ﭼﯿـﺰی ﺷﻲء اﺳﺖ ﺣﺘﻲ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ.
برنامه ی اول :
Visual studio.netرا اﺟﺮا ﻛﻨﯿﺪ و ﺳﭙﺲ در ﺻﻔﺤﻪ ی ﻇﺎھﺮ ﺷﺪه New Project را ﺑﺮﮔﺰﻳﻨﯿﺪ. ﺣﺎﻻ از ﮔﺰﻳﻨﻪ ی Visual
C# projectsﻗﺴﻤﺖ *Console applicationsرا اﻧﺘﺨﺎب ﻧﻤﺎﻳﯿﺪ. ﻧﺎﻣﻲ دﻟﺨـﻮاه ھﻤﺎﻧﻨـﺪ ۱۰ exرا وارد ﻧﻤـﻮده و ﺳـﭙﺲ *Ok ﻧﻤﺎﻳﯿﺪ. ﻛﺪ زﻳﺮ ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر ﺑﺮای ﺷﻤﺎ ﺗﻮﻟﯿﺪ ﺧﻮاھﺪ ﺷﺪ :
کد:
;using System
namespace ۱۰ex
}
* * * Class Class۱
{
* * * * * [STAThread]
* * * * * *( static void Main( string[] args
* * * * * *}
* * * * * * * * * //
* * * * * * * * * // TODO: Add code to start application here
* * * * * * * * * //
* * * * * }
* * *}
{
اﮔﺮ ﻳﻚ ﺳﺮی از ﻣﻔﺎھﯿﻢ آﻧﺮا ﻣﺘﻮﺟﻪ ﻧﻤﻲ ﺷﻮﻳﺪ اﺻﻼ ﻣﮫﻢ ﻧﯿﺴﺖ! در ﻣﻘـﺎﻻت آﺗـﻲ ﺗﻤـﺎم اﻳـﻦ ﻣـﻮارد ﻣﻔـﺼﻞ ﺗﻮﺿـﯿﺢ داده ﺧﻮاھﻨﺪ ﺷﺪ.
ﻣﺘﺪ اﺳﺘﺎﻧﺪارد Main در اﻳﻨﺠﺎ ﻗﺴﻤﺘﻲ اﺳﺖ ﻛﻪ ﻋﻤﻠﯿﺎت اﺻﻠﻲ ﺑﺮﻧﺎﻣﻪ در ﺣﺎﻟـﺖ ) Consoleﺷـﺒﯿﻪ ﺑـﻪ ﺑﺮﻧﺎﻣـﻪ ھـﺎی ﺗﺤﺖ داس اﻣﺎ ٢٣ ﺑﯿﺘﻲ ) در آن اﻧﺠﺎم ﻣﻲ ﺷﻮد.
ﺑﺪون ﻣﺘﺪ Main ﺑﺮﻧﺎﻣﻪ ھﺎی ﺳﻲ ﺷﺎرپ ﻗﺎدر ﺑﻪ اﺟﺮا ﻧﺨﻮاھﻨﺪ ﺑﻮد. ﻧﻮع آن در اﻳﻨﺠﺎ *voidﺗﻌﺮﻳـﻒ ﺷـﺪه اﺳـﺖ ﻳﻌﻨـﻲ اﻳﻦ ﻣﺘﺪ ﺧﺮوﺟﻲ ﻧﺪارد. ﺣﺘﻲ اﮔﺮ ﺑﺮﻧﺎﻣﻪ ھﺎی اﺳـﺘﺎﻧﺪارد وﻳﻨـﺪوز را ھـﻢ ﺑﺨﻮاھﯿـﺪ ﺑـﺎ # Cﺑﻨﻮﻳـﺴﯿﺪ ﺑـﺎزھﻢ ﻣﺘـﺪ Main ﺣﻀﻮر ﺧﻮاھﺪ داﺷﺖ ، ھﺮ ﭼﻨﺪ ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر وﻳﮋوال اﺳﺘﻮدﻳﻮ آﻧﺮا ﺗﻮﻟﯿﺪ ﻣﻲ ﻛﻨﺪ.
ﻃﺮﻳﻘﻪ ی ﻧﻮﺷﺘﻦ ﺗﻮﺿﯿﺤﺎت ( ( Comments در ﺳﻲ ﺷﺎرپ ھﻤﺎﻧﻨﺪ ++ Cﻣﻲ ﺑﺎﺷﺪ ﻳﻌﻨﻲ :
/* /* any comments
و ﻳﺎ
// any comments
و ﺗﻨﮫﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺑﺮای ﻧﻮﺷﺘﻦ ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣـﻮرد ﻛـﺪھﺎی ﺧـﻮد از آﻧﮫـﺎ اﺳـﺘﻔﺎده ﻣـﻲ ﻛﻨـﺪ و در ﺧﺮوﺟـﻲ ﺑﺮﻧﺎﻣـﻪ ﻇﺎھﺮ ﻧﻤﻲ ﺷﻮﻧﺪ.
ﻓﻌﻼ ﺑﺮای ﭘﺎﻳﺎن ﻗﺴﻤﺖ اول از ﺷﻲء *Consoleو ﻣﺘﺪ *WriteLineآن ﺑﺮای ﻧﻤﺎﻳﺶ ﻳﻚ ﺟﻤﻠﻪ ی ﺳـﺎده اﺳـﺘﻔﺎده ﻣـﻲ ﻛﻨﯿﻢ. *راﺟﻊ ﺑﻪ ﻣﺘﺪھﺎ ، ﻣﺘﻐﯿﺮھﺎ و ﻏﯿﺮه در آﻳﻨﺪه ﺑﯿﺸﺘﺮ ﺻﺤﺒﺖ ﻣﻲ ﻛﻨﯿﻢ. در آﺧﺮ ﺑﺮﻧﺎﻣﻪ ی ﻣﺎ ﭼﯿﺰی ﺷﺒﯿﻪ ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
کد:
using System
namespace ۱۰ex
}
* * *class Class۱
* * *}
* * * * * [ STAThread ]
* * * * * *( static void Main( string[] args
* * * * * {
* * * * * * * * * ;("!#Console.WriteLine("Hello C
* * * * * }
* *}
{
منبع : وی سی شارپ (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)
مقدمه
در ﻃﻲ ﺳﻠﺴﻠﻪ ﻣﻘﺎﻻﺗﻲ ﻣﻲ ﺧﻮاھﯿﻢ ﺑـﺎ # Cﺑﯿـﺸﺘﺮ آﺷـﻨﺎ ﺷـﻮﻳﻢ. ﻓـﺮض اﻳـﻦ ﻣﻘـﺎﻻت ﺑـﺮ اﻳـﻦ اﺳـﺖ ﻛـﻪ آﺷـﻨﺎﻳﻲ ﻣﺨﺘﺼﺮی ﺑﺎ زﺑﺎﻧﮫﺎی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ دارﻳﺪ ، ھﺮ ﭼﻨﺪ ﻛﺎر ﻣﺎ ﺗﻘﺮﻳﺒﺎ از ﺻﻔﺮ ﺷـﺮوع ﻣـﻲ ﺷـﻮد و ھـﺪف آن ﺳـﺎدﮔﻲ هرﭼﻪ ﺑﯿﺸﺘﺮ اﺳﺖ.
# Cاز دو زﺑﺎن ++ Cو Java ﻣﺘﻮﻟﺪ ﺷـﺪه اﺳـﺖ! ﺣـﺎوی ﺑـﺴﯿﺎری از ﺟﻨﺒـﻪ ھـﺎی ++ Cﻣـﻲ ﺑﺎﺷـﺪ اﻣـﺎ وﻳﮋﮔـﻲ ھـﺎی ﺷﻲء ﮔﺮاﻳﻲ ﺧﻮدش را از ﺟﺎوا ﺑﻪ ارث ﺑﺮده اﺳﺖ.
# Cاﮔﺮﭼﻪ از ++ Cﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ اﻣﺎ ﻳﻚ زﺑﺎن "ﺧﺎﻟﺺ" ﺷﻲء ﮔﺮا ( ( Object Oriented ﻣﻲ ﺑﺎﺷﺪ. ھﺮ دو زﺑﺎن ﻳـﺎد ﺷﺪه ﺟﺰو زﺑﺎﻧﮫﺎی ھﯿﺒﺮﻳﺪ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ اﻣﺎ ﻃﺮاﺣﺎن # Cاﻳﻦ ﻣﻮرد را ﺑﻪ اﻧﺪازه ی ++ Cﻣﮫﻢ ﺗﻠﻘﻲ ﻧﻜـﺮده اﻧـﺪ. ﻳﻚ زﺑﺎن ھﯿﺒﺮﻳﺪ اﺟﺎزه ی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﺎ ﺷﯿﻮه ھﺎی ﻣﺨﺘﻠﻒ را ﻣﯿﺴﺮ ﻣﻲ ﻛﻨﺪ. دﻟﯿـﻞ اﻳﻨﻜـﻪ ++ Cھﯿﺒﺮﻳـﺪ اﺳـﺖ ، اﻳﻦ اﺳﺖ ﻛﻪ ﻗﺮار ﺑﻮده ﺗﺎ ﺑﺎ زﺑﺎن Cﺳﺎزﮔﺎر ﺑﺎﺷﺪ و ھﻤﯿﻦ اﻣﺮ ﺳـﺒﺐ ﮔﺮدﻳـﺪه ﺗـﺎ ﺑﻌـﻀﻲ از ﺟﻨﺒـﻪ ھـﺎی ++ Cﺑـﺴﯿﺎر ﭘﯿﭽﯿﺪه ﺷﻮﻧﺪ.
زﺑﺎن ﺳﻲ ﺷﺎرپ ﻓﺮض اش ﺑﺮ اﻳﻦ اﺳﺖ ﻛﻪ ﺷﻤﺎ ﻣﻲ ﺧﻮاھﯿﺪ ﺗﻨﮫﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲء ﮔﺮا اﻧﺠﺎم دھﯿـﺪ و ھﻤﺎﻧﻨـﺪ ++C *ﻣﺨﻠﻮﻃﻲ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ روﻳﻪ اﻳﻲ ( ( Proceduralو ﺷﻲء ﮔﺮا را ﻧﻤـﻲ ﺧﻮاھﯿـﺪ ﺑـﻪ ﭘﺎﻳـﺎن ﺑﺮﺳـﺎﻧﯿﺪ. ﺑﻨـﺎﺑﺮاﻳﻦ ﺑﺎﻳﺪ ﻃﺮز ﻓﻜﺮ ﺧﻮدﺗﺎن را ﺑﺎ دﻧﯿﺎی ﺷﻲء ﮔﺮاﻳﻲ ﺗﻄﺒﯿﻖ دھﯿـﺪ. در اداﻣـﻪ ﺧﻮاھﯿـﺪ دﻳـﺪ ﻛـﻪ در ﺳـﻲ ﺷـﺎرپ ھـﺮ ﭼﯿـﺰی ﺷﻲء اﺳﺖ ﺣﺘﻲ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ.
برنامه ی اول :
Visual studio.netرا اﺟﺮا ﻛﻨﯿﺪ و ﺳﭙﺲ در ﺻﻔﺤﻪ ی ﻇﺎھﺮ ﺷﺪه New Project را ﺑﺮﮔﺰﻳﻨﯿﺪ. ﺣﺎﻻ از ﮔﺰﻳﻨﻪ ی Visual
C# projectsﻗﺴﻤﺖ *Console applicationsرا اﻧﺘﺨﺎب ﻧﻤﺎﻳﯿﺪ. ﻧﺎﻣﻲ دﻟﺨـﻮاه ھﻤﺎﻧﻨـﺪ ۱۰ exرا وارد ﻧﻤـﻮده و ﺳـﭙﺲ *Ok ﻧﻤﺎﻳﯿﺪ. ﻛﺪ زﻳﺮ ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر ﺑﺮای ﺷﻤﺎ ﺗﻮﻟﯿﺪ ﺧﻮاھﺪ ﺷﺪ :
کد:
;using System
namespace ۱۰ex
}
* * * Class Class۱
{
* * * * * [STAThread]
* * * * * *( static void Main( string[] args
* * * * * *}
* * * * * * * * * //
* * * * * * * * * // TODO: Add code to start application here
* * * * * * * * * //
* * * * * }
* * *}
{
اﮔﺮ ﻳﻚ ﺳﺮی از ﻣﻔﺎھﯿﻢ آﻧﺮا ﻣﺘﻮﺟﻪ ﻧﻤﻲ ﺷﻮﻳﺪ اﺻﻼ ﻣﮫﻢ ﻧﯿﺴﺖ! در ﻣﻘـﺎﻻت آﺗـﻲ ﺗﻤـﺎم اﻳـﻦ ﻣـﻮارد ﻣﻔـﺼﻞ ﺗﻮﺿـﯿﺢ داده ﺧﻮاھﻨﺪ ﺷﺪ.
ﻣﺘﺪ اﺳﺘﺎﻧﺪارد Main در اﻳﻨﺠﺎ ﻗﺴﻤﺘﻲ اﺳﺖ ﻛﻪ ﻋﻤﻠﯿﺎت اﺻﻠﻲ ﺑﺮﻧﺎﻣﻪ در ﺣﺎﻟـﺖ ) Consoleﺷـﺒﯿﻪ ﺑـﻪ ﺑﺮﻧﺎﻣـﻪ ھـﺎی ﺗﺤﺖ داس اﻣﺎ ٢٣ ﺑﯿﺘﻲ ) در آن اﻧﺠﺎم ﻣﻲ ﺷﻮد.
ﺑﺪون ﻣﺘﺪ Main ﺑﺮﻧﺎﻣﻪ ھﺎی ﺳﻲ ﺷﺎرپ ﻗﺎدر ﺑﻪ اﺟﺮا ﻧﺨﻮاھﻨﺪ ﺑﻮد. ﻧﻮع آن در اﻳﻨﺠﺎ *voidﺗﻌﺮﻳـﻒ ﺷـﺪه اﺳـﺖ ﻳﻌﻨـﻲ اﻳﻦ ﻣﺘﺪ ﺧﺮوﺟﻲ ﻧﺪارد. ﺣﺘﻲ اﮔﺮ ﺑﺮﻧﺎﻣﻪ ھﺎی اﺳـﺘﺎﻧﺪارد وﻳﻨـﺪوز را ھـﻢ ﺑﺨﻮاھﯿـﺪ ﺑـﺎ # Cﺑﻨﻮﻳـﺴﯿﺪ ﺑـﺎزھﻢ ﻣﺘـﺪ Main ﺣﻀﻮر ﺧﻮاھﺪ داﺷﺖ ، ھﺮ ﭼﻨﺪ ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر وﻳﮋوال اﺳﺘﻮدﻳﻮ آﻧﺮا ﺗﻮﻟﯿﺪ ﻣﻲ ﻛﻨﺪ.
ﻃﺮﻳﻘﻪ ی ﻧﻮﺷﺘﻦ ﺗﻮﺿﯿﺤﺎت ( ( Comments در ﺳﻲ ﺷﺎرپ ھﻤﺎﻧﻨﺪ ++ Cﻣﻲ ﺑﺎﺷﺪ ﻳﻌﻨﻲ :
/* /* any comments
و ﻳﺎ
// any comments
و ﺗﻨﮫﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺑﺮای ﻧﻮﺷﺘﻦ ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣـﻮرد ﻛـﺪھﺎی ﺧـﻮد از آﻧﮫـﺎ اﺳـﺘﻔﺎده ﻣـﻲ ﻛﻨـﺪ و در ﺧﺮوﺟـﻲ ﺑﺮﻧﺎﻣـﻪ ﻇﺎھﺮ ﻧﻤﻲ ﺷﻮﻧﺪ.
ﻓﻌﻼ ﺑﺮای ﭘﺎﻳﺎن ﻗﺴﻤﺖ اول از ﺷﻲء *Consoleو ﻣﺘﺪ *WriteLineآن ﺑﺮای ﻧﻤﺎﻳﺶ ﻳﻚ ﺟﻤﻠﻪ ی ﺳـﺎده اﺳـﺘﻔﺎده ﻣـﻲ ﻛﻨﯿﻢ. *راﺟﻊ ﺑﻪ ﻣﺘﺪھﺎ ، ﻣﺘﻐﯿﺮھﺎ و ﻏﯿﺮه در آﻳﻨﺪه ﺑﯿﺸﺘﺮ ﺻﺤﺒﺖ ﻣﻲ ﻛﻨﯿﻢ. در آﺧﺮ ﺑﺮﻧﺎﻣﻪ ی ﻣﺎ ﭼﯿﺰی ﺷﺒﯿﻪ ﺑﻪ ﻋﺒﺎرت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
کد:
using System
namespace ۱۰ex
}
* * *class Class۱
* * *}
* * * * * [ STAThread ]
* * * * * *( static void Main( string[] args
* * * * * {
* * * * * * * * * ;("!#Console.WriteLine("Hello C
* * * * * }
* *}
{
منبع : وی سی شارپ (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)