ابزار وبلاگ

Computer
درباره وبلاگ


سلام این وبلاگ جهت آموزش برنامه نویسی ویژوال ساخته شده است آموزش سی شارپ ، ASP.net, ویژوال استودیو انشاءالله که به دردتون بخوره!!!!!
آرشيو وبلاگ
نويسندگان
جمعه 08 دی 1391 :: 11:07 :: نويسنده : mhdsoft

ﻣﺒﺤﺚ ‪: overloading‬‬

‫ﮔﺎھﻲ از اوﻗﺎت ﻻزم اﺳﺖ ﺗﺎ ﻧﮕﺎرش ھﺎی ﻣﺨﺘﻠﻔﻲ از ﻳﻚ ﺗﺎﺑﻊ داﺷﺘﻪ ﺑﺎﺷﯿﻢ. ﺑﺮای ﻣﺜﺎل ﺗﻌﺮﻳﻒ ﺳﻪ ﺗـﺎﺑﻊ ﺑـﺎ ﻳـﻚ ﻧـﺎم ‫اﻣﺎ ﺑﺎ آرﮔﻮﻣﺎﻧﮫﺎی ﻣﺨﺘﻠﻒ. ﺑﻪ اﻳﻦ ﻧﻮع ﺗﻮاﺑﻊ و ﻳﺎ ﻣﺘﺪھﺎ اﺻﻄﻼﺣﺎ ‪ Overloaded Methods‬ ﻣﻲ ﮔﻮﻳﻨﺪ . ( ﻓﻜﺮ ﻛـﻨﻢ آﻧـﺮا‬ ‫ﺳﺮﺑﺎرﮔﺬاری ﺗﻮاﺑﻊ ﺗﺮﺟﻤﻪ ﻛﺮده اﻧﺪ! ) ﺑﺮای ﻣﺜﺎل :...



ادامه مطلب ...
دوشنبه 04 دی 1391 :: 07:50 :: نويسنده : mhdsoft

 ﭼﮕﻮﻧﻪ از ﻳﻚ ﺗﺎﺑﻊ ﺑﯿﺶ از ﻳﻚ ﺧﺮوﺟﻲ درﻳﺎﻓﺖ ﻛﻨﯿﻢ ؟


‫ﻇﺎھﺮا ﺑﻪ ﻧﻈﺮ ﻣﻲ رﺳﺪ ﻛﻪ ﺗﻮاﺑﻊ ﻓﻘﻂ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻳﻚ ‪ return‬ داﺷﺘﻪ ﺑﺎﺷﻨﺪ و ﺑﻼﻓﺎﺻﻠﻪ ﭘـﺲ از ﻓﺮاﺧـﻮاﻧﻲ ‪ return‬ ﻛـﺎر‬ ‫ﺗﺎﺑﻊ ﭘﺎﻳﺎن ﻳﺎﻓﺘﻪ اﺳﺖ. در ﺳﻲ ﺷﺎرپ دو ﻛﻠﻤﻪ ی ﻛﻠﯿﺪی ﺑﻪ ﻧﺎم ھﺎی ‪ ref‬ و ‪ out‬ اﺿﺎﻓﻪ ﺷﺪه اﻧﺪ ﻛﻪ اﻳﻦ اﻣﺮ را ﺳﺎده‬ ‫ﺗﺮ ﻣﻲ ﻛﻨﻨﺪ.‬

‫اﺳﺘﻔﺎده از ﻛﻠﻤﻪ ی ﻛﻠﯿﺪی ‪: out‬‬ ......



ادامه مطلب ...
یکشنبه 03 دی 1391 :: 20:38 :: نويسنده : mhdsoft

 ﺗﻌﺮﻳﻒ ﻣﺘﺪھﺎ در ﺳﻲ ﺷﺎرپ‬

‫در اﻳﻦ ﻗﺴﻤﺖ ﺑﻪ ﻳﻜﻲ از ﻣﮫﻤﺘﺮﻳﻦ ﻣﺒﺎﺣﺚ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺳﻲ ﺷﺎرپ ﻣﻲ رﺳﯿﻢ.‬
‫ﻣﺘﺪھﺎ در ﺳﻲ ﺷﺎرپ و ﻳﺎ ھﻤﺎن ﺗﻮاﺑﻊ در زﺑﺎن ‪ ، C‬اﻋﻀﺎی ﻳﻚ ﺷﻲء ﻳﺎ ﻛﻼس ھﺴﺘﻨﺪ و ﻣﺠﻤﻮﻋﻪ ای از ﻳﻚ ﺳـﺮی‬ ‫از ﻛﺎرھﺎ را اﻧﺠﺎم ﻣﻲ دھﻨﺪ. ﻓﺮض ﻛﻨﯿﺪ در ﺑﺮﻧﺎﻣﻪ ی ﺷﻤﺎ ، ﻗﺴﻤﺘﻲ ﺑﺎﻳﺪ ﻳﻚ ﻋﻤﻠﯿﺎت رﻳﺎﺿﻲ ﺧـﺎص را اﻧﺠـﺎم دھـﺪ و‬ ‫اﻳﻦ ﻗﺴﻤﺖ از ﻛﺪ ﻛﻪ ﺷـﺎﻣﻞ ﭼﻨـﺪﻳﻦ ﺧـﻂ ﻧﯿـﺰ ﻣـﻲ ﮔـﺮدد ﺑﺎﻳـﺪ ﺑﺎرھـﺎ و ﺑﺎرھـﺎ در ﺑﺮﻧﺎﻣـﻪ ﺻـﺪا زده ﺷـﻮد. ﺑـﺮای ﻧﻈـﻢ‬ ‫ﺑﺨﺸﯿﺪن ﺑﻪ ﺑﺮﻧﺎﻣﻪ ، آﻧﮫﺎ را ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻮرت ﺗﻮاﺑﻊ ﺑﺴﺘﻪ ﺑﻨﺪی ﻛﺮد و ﺑﺠﺎی ﻧﻮﺷﺘﻦ ﭼﻨﺪﻳﻦ ﺧﻂ ﺗﻜـﺮاری، ﻓﻘـﻂ ﻧـﺎم‬ ‫اﻳﻦ ﺑﺴﺘﻪ ( ﺗﺎﺑﻊ ) و ﭘﺎراﻣﺘﺮھﺎی آن را ﻓﺮاﺧﻮاﻧﻲ ﻧﻤﻮد.‬v



ادامه مطلب ...
پنج‌شنبه 30 آذر 1391 :: 16:39 :: نويسنده : mhdsoft

دو ﻣﻮرد ﺗﻜﻤﯿﻠﻲ در ﻣﻮرد ﺣﻠﻘﻪ ھﺎ در ﺳﻲ ﺷﺎرپ :‬

‫١- ھﺮ ﺟﺎﻳﻲ ﺧﻮاﺳﺘﯿﺪ ﺑﻪ ھﺮ دﻟﯿﻠﻲ ﺣﻠﻘﻪ را ﭘﺎﻳﺎن دھﯿﺪ ﻣﻲ ﺗﻮاﻧﯿـﺪ از دﺳـﺘﻮر ;‪ break‬اﺳـﺘﻔﺎده ﻛﻨﯿـﺪ. در اﻳـﻦ‬ ‫ﺣﺎﻟﺖ ﺑﻪ ﺻﻮرت آﻧﻲ ﺣﻠﻘﻪ ﺧﺎﺗﻤﻪ ﻳﺎﻓﺘﻪ و ﻛﺪھﺎی اداﻣﻪ ی ﺑﺮﻧﺎﻣﻪ ﭘﺲ از ﺣﻠﻘﻪ اﺟﺮا ﻣﻲ ﺷﻮﻧﺪ.‬
‫٢- ﻧﺤﻮه ی اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ : continue‬ﻓﺮض ﻛﻨﯿﺪ ﺣﻠﻘﻪ ی ﺷـﻤﺎ در راﻧـﺪ ۵١ ﺧـﻮدش اﺳـﺖ! ﺣـﺎﻻ در اﻳـﻦ ‫راﻧﺪ ﺷﻤﺎ ﻣﻲ ﺧﻮاھﯿﺪ ﻳﻚ ﺳﺮی از دﺳﺘﻮرات درون ﺣﻠﻘﻪ اﺟﺮا ﻧﺸﻮﻧﺪ و ﺣﻠﻘﻪ ﺑﻪ راﻧﺪ ﺑﻌﺪی ﻣﻨﺘﻘـﻞ ﺷـﺪه و‬ ‫ﻛﺎرش را اداﻣﻪ دھﺪ. اﻳﻨﺠﺎ اﺳﺖ ﻛﻪ از دﺳﺘﻮر ‪ continue‬اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد. ﺑﮫﺘﺮ اﺳﺖ ﺑﻪ ﻳﻚ ﻣﺜـﺎل ﺳـﺎده‬ ‫در اﻳﻦ زﻣﯿﻨﻪ ﺗﻮﺟﻪ ﻛﻨﯿﻢ.



ادامه مطلب ...
پنج‌شنبه 30 آذر 1391 :: 16:36 :: نويسنده : mhdsoft

ﺣﻠﻘﻪ ھﺎ در ﺳﻲ ﺷﺎرپ :‬

‫ﻣﻘﺪﻣﻪ :‬

‫اﮔﺮ ﻧﯿﺎز ﺑﺎﺷﺪ ﺗﺎ ﻗﻄﻌﻪ ای از ﻛﺪ ﺑﯿﺶ از ﻳﻜﺒﺎر اﺟﺮا ﺷﻮد ﻧﯿﺎز ﺑﻪ اﺳﺘﻔﺎده از ﺣﻠﻘـﻪ ھـﺎ ﻣـﻲ ﺑﺎﺷـﺪ. ﺑـﺮای ﻣﺜـﺎل ﻓـﺮض ‫ﻛﻨﯿﺪ آراﻳﻪ ای ﺑﻪ ﻃﻮل ۱۰۰۰ ﺗﻌﺮﻳﻒ ﻛﺮده اﻳﺪ. اﻛﻨﻮن ﻣﻲ ﺧﻮاھﯿﺪ آﻧﺮا ﺑﺎ ھﺰار ﻋﺪد ﻣﺘﻮاﻟﻲ ﭘﺮﻛﻨﯿـﺪ. ﺑـﺪﻳﮫﻲ اﺳـﺖ ﻛـﻪ‬ ‫روش زﻳﺮ ﻛﺎرآﻣﺪ ﻧﯿﺴﺖ! :‬

‫;[۱۰۰۰]‪int[] intData = new int‬‬
‫;۰=[۰]‪intData‬‬
‫.‬
.‬
.‬
;۹۹۹=[۹۹۹]‪intData‬‬

 



ادامه مطلب ...
چهارشنبه 29 آذر 1391 :: 18:29 :: نويسنده : mhdsoft

آراﻳﻪ ھﺎ در ﺳﻲ ﺷﺎرپ :‬

‫ھﻨﮕﺎﻣﻲ آراﻳﻪ ھﺎ اﻳﺠﺎد ﻣﻲ ﺷﻮﻧﺪ ﻛﻪ ﺑﺨﻮاھﯿﻢ ﺑﺎ ﻣﺠﻤﻮﻋﻪ ای از اﻃﻼﻋـﺎت ھﻤﺠـﻨﺲ ﻛـﺎر ﻛﻨـﯿﻢ. ﺑـﺮای ﻧﻤﻮﻧـﻪ از ﻳـﻚ‬ ‫آراﻳﻪ ﺑﺮای ذﺧﯿﺮه ﺗﻌﺪادی ﻛﺎراﻛﺘﺮ ﻣﻲ ﺧﻮاھﯿﻢ اﺳﺘﻔﺎده ﻧﻤﺎﻳﯿﻢ. آراﻳﻪ ھﺎ ھﻢ ﻳﻚ ﻧﻮع ﻣﺘﻐﯿﺮ ھﺴﺘﻨﺪ ﭘﺲ ﺑﺎﻳﺪ ﺗﻌﺮﻳﻒ و ‫ﻣﻘﺪار دھﻲ اوﻟﯿﻪ ﺷﻮﻧﺪ ، ﻧﻮع و ﺗﻌﺪاد اﻋﻀﺎی آﻧﮫﺎ ﻧﯿﺰ ﺑﺎﻳﺪ ﻣﻌﯿﻦ ﮔﺮدد.‬



ادامه مطلب ...
دوشنبه 27 آذر 1391 :: 17:51 :: نويسنده : mhdsoft

ﺳﺎﺧﺘﺎرھﺎی ﺗﺼﻤﯿﻢ ﮔﯿﺮی ‬


‫در ﺑﺴﯿﺎری از ﻣﻮارد ھﻨﮕﺎم ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻻزم اﺳـﺖ ﺗـﺎ از ﻋﺒـﺎرات ﺷـﺮﻃﻲ اﺳـﺘﻔﺎده ﻛﻨـﯿﻢ. ﺑـﺮای اﻧﺠـﺎم اﻳﻨﻜـﺎر دو‬ ‫روش ﻋﻤﺪه وﺟﻮد دارد. اﺳﺘﻔﺎده از ‪ if‬ و ﻳﺎ ‪ . switch‬از ‪ if‬ ﺑﯿـﺸﺘﺮ ﺑـﺮای ﻣﻘﺎﻳـﺴﻪ ھـﺎی ﺗﻜـﻲ و ﻛﻮﭼـﻚ اﺳـﺘﻔﺎده ﻣـﻲ‬ ‫ﺷﻮد و ﺣﺎﺻﻞ ﻣﻘﺎﻳﺴﻪ ی آن ﻳﺎ ‪ true‬ اﺳﺖ و ﻳﺎ ‪ . false‬از ﻋﺒﺎرت ‪ switch‬ھﻨﮕﺎﻣﻲ اﺳﺘﻔﺎده ﻣـﻲ ﺷـﻮد ﻛـﻪ ﻣﻘﺎﻳـﺴﻪ ‫ھﺎی ﻣﺘﻌﺪدی ﺑﺎﻳﺪ در ﻣﻮرد ﻳﻚ ﻣﻘﺪار ﺻﻮرت ﮔﯿﺮد.‬
‫ھﺮ دو ﻋﺒﺎرت ‪ if‬ و ‪ switch‬ﺗﻮﺳﻂ ﻋﺒﺎرﺗﮫﺎی ‪ Boolean‬ ﻛﻨﺘﺮل ﻣﻲ ﺷﻮﻧﺪ( ‪ true‬و ﻳﺎ ‪ . ( false‬در ھﻨﮕـﺎم اﺳـﺘﻔﺎده از ‪if‬‬ ‫اﮔﺮ ﻋﺒﺎرت ‪ Boolean‬ ﺣﺎﺻﻞ اش ‪ true‬ﺑﺎﺷﺪ اوﻟﯿﻦ ﻗﺴﻤﺖ ﺷﺮط اﺟﺮا ﻣﻲ ﺷـﻮد و ﺳـﭙﺲ ﺑﺮﻧﺎﻣـﻪ از اﻧﺘﮫـﺎی ‪ if‬ اداﻣـﻪ‬ ‫ﭘﯿﺪا ﻣﻲ ﻛﻨﺪ. اﮔﺮ ﺣﺎﺻﻞ ﻋﺒﺎرت ‪ Boolean‬ ﻣﺴﺎوی ‪ false‬ ﺑﺎﺷﺪ ﻛﻨﺘﺮل ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻗﺴﻤﺖ ‪ else‬ ﻣﻨﺘﻘﻞ ﻣﻲ ﺷﻮد.‬



ادامه مطلب ...
شنبه 25 آذر 1391 :: 15:14 :: نويسنده : mhdsoft

در اﻳﻦ ﻗﺴﻤﺖ ﻣﻲ ﺧﻮاھﯿﻢ ﺑﺎ ﻳﻚ ﺳﺮی از اﺻﻮل اوﻟﯿﻪ ی ﺷﻲء ﮔﺮاﻳﻲ در ﺳﻲ ﺷﺎرپ ﻛﻤﻲ آﺷـﻨﺎ ﺷـﻮﻳﻢ. ﻻزم ﺑـﻪ‬ ‫ذﻛﺮ اﺳﺖ ، ﺑﺴﯿﺎری از ﻣﻮاردی ﻛﻪ در اﻳﻦ ﻗـﺴﻤﺖ ﻣﻄـﺮح ﻣـﻲ ﺷـﻮﻧﺪ ﻓﻘـﻂ ﺑـﺮای آﺷـﻨﺎﻳﻲ ﺷـﻤﺎ اﺳـﺖ و در آﻳﻨـﺪه‬ ‫ﺑﯿﺸﺘﺮ ﺑﺤﺚ و ﻣﺮور ﺧﻮاھﻨﺪ ﺷﺪ.‬



ادامه مطلب ...
جمعه 24 آذر 1391 :: 16:25 :: نويسنده : mhdsoft

درس دوم

ﺗﻌﺮﻳﻒ ﻣﺘﻐﯿﺮھﺎ در ﺳﻲ ﺷﺎرپ:‬

ﺳﻲ ﺷﺎرپ ﻋﻨﺎﺻﺮی را ﻛﻪ ﺑﻜﺎر ﻣﻲ ﮔﯿﺮد ھﻤﺎﻧﻨﺪ اﻋﺪاد و ﻛﺎراﻛﺘﺮھﺎ ، ﺑﻪ ﺻﻮرت ﻧـﻮع ھـﺎ (‪ ( Types ‬ﻃﺒﻘـﻪ ﺑﻨـﺪی ﻣـﻲ ‫ﻛﻨﺪ. اﻳﻦ اﻧﻮاع ﺷﺎﻣﻞ ﻣﻮارد زﻳﺮ ﻣﻲ ﺷﻮﻧﺪ :‬

‫ﻧﻮع ھﺎی ﭘﺎﻳﻪ اﻳﻲ از ﭘﯿﺶ ﺗﻌﺮﻳﻒ ﺷﺪه ﻣﺎﻧﻨﺪ اﻋﺪاد و ﻏﯿﺮه.‬


‫ﻧﻮع ھﺎی ﺗﻌﺮﻳﻒ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﻛﻪ ﺷﺎﻣﻞ ‪ STRUCT‬ھﺎ و ‪ ENUM‬ ھﺎ ﻣﻲ ﺷﻮﻧﺪ.‬

‫ﻧﺤﻮه ی ﺗﻌﺮﻳﻒ ﻣﺘﻐﯿﺮھﺎ ...



ادامه مطلب ...
پنج‌شنبه 23 آذر 1391 :: 15:56 :: نويسنده : mhdsoft

 

ﻗﺴﻤﺖ ١‬

مقدمه

در ﻃﻲ ﺳﻠﺴﻠﻪ ﻣﻘﺎﻻﺗﻲ ﻣﻲ ﺧﻮاھﯿﻢ ﺑـﺎ #‪ C‬ﺑﯿـﺸﺘﺮ آﺷـﻨﺎ ﺷـﻮﻳﻢ. ﻓـﺮض اﻳـﻦ ﻣﻘـﺎﻻت ﺑـﺮ اﻳـﻦ اﺳـﺖ ﻛـﻪ آﺷـﻨﺎﻳﻲ‬ ‫ﻣﺨﺘﺼﺮی ﺑﺎ زﺑﺎﻧﮫﺎی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ دارﻳﺪ ، ھﺮ ﭼﻨﺪ ﻛﺎر ﻣﺎ ﺗﻘﺮﻳﺒﺎ از ﺻﻔﺮ ﺷـﺮوع ﻣـﻲ ﺷـﻮد و ھـﺪف آن ﺳـﺎدﮔﻲ هر‫ﭼﻪ ﺑﯿﺸﺘﺮ اﺳﺖ.‬

#‪ C‬از دو زﺑﺎن ++‪ C‬و ‪ Java‬ ﻣﺘﻮﻟﺪ ﺷـﺪه اﺳـﺖ! ﺣـﺎوی ﺑـﺴﯿﺎری از ﺟﻨﺒـﻪ ھـﺎی ++‪ C‬ﻣـﻲ ﺑﺎﺷـﺪ اﻣـﺎ وﻳﮋﮔـﻲ ھـﺎی ‫ﺷﻲء ﮔﺮاﻳﻲ ﺧﻮدش را از ﺟﺎوا ﺑﻪ ارث ﺑﺮده اﺳﺖ.‬

‫#‪ C‬اﮔﺮﭼﻪ از ++‪ C‬ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ اﻣﺎ ﻳﻚ زﺑﺎن "ﺧﺎﻟﺺ" ﺷﻲء ﮔﺮا (‪ ( Object Oriented ‬ﻣﻲ ﺑﺎﺷﺪ. ھﺮ دو زﺑﺎن ﻳـﺎد‬ ‫ﺷﺪه ﺟﺰو زﺑﺎﻧﮫﺎی ھﯿﺒﺮﻳﺪ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ اﻣﺎ ﻃﺮاﺣﺎن #‪ C‬اﻳﻦ ﻣﻮرد را ﺑﻪ اﻧﺪازه ی ++‪ C‬ﻣﮫﻢ ﺗﻠﻘﻲ ﻧﻜـﺮده اﻧـﺪ.‬ ‫ﻳﻚ زﺑﺎن ھﯿﺒﺮﻳﺪ اﺟﺎزه ی ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﺎ ﺷﯿﻮه ھﺎی ﻣﺨﺘﻠﻒ را ﻣﯿﺴﺮ ﻣﻲ ﻛﻨﺪ. دﻟﯿـﻞ اﻳﻨﻜـﻪ ++‪ C‬ھﯿﺒﺮﻳـﺪ اﺳـﺖ ، اﻳﻦ اﺳﺖ ﻛﻪ ﻗﺮار ﺑﻮده ﺗﺎ ﺑﺎ زﺑﺎن ‪ C‬ﺳﺎزﮔﺎر ﺑﺎﺷﺪ و ھﻤﯿﻦ اﻣﺮ ﺳـﺒﺐ ﮔﺮدﻳـﺪه ﺗـﺎ ﺑﻌـﻀﻲ از ﺟﻨﺒـﻪ ھـﺎی ++‪ C‬ﺑـﺴﯿﺎر‬ ‫ﭘﯿﭽﯿﺪه ﺷﻮﻧﺪ.‬

‫زﺑﺎن ﺳﻲ ﺷﺎرپ ﻓﺮض اش ﺑﺮ اﻳﻦ اﺳﺖ ﻛﻪ ﺷﻤﺎ ﻣﻲ ﺧﻮاھﯿﺪ ﺗﻨﮫﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲء ﮔﺮا اﻧﺠﺎم دھﯿـﺪ و ھﻤﺎﻧﻨـﺪ ++C  ﻣﺨﻠﻮﻃﻲ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ روﻳﻪ اﻳﻲ ( ‪ ( Procedural‬و ﺷﻲء ﮔﺮا را ﻧﻤـﻲ ﺧﻮاھﯿـﺪ ﺑـﻪ ﭘﺎﻳـﺎن ﺑﺮﺳـﺎﻧﯿﺪ. ﺑﻨـﺎﺑﺮاﻳﻦ‬ ﺑﺎﻳﺪ ﻃﺮز ﻓﻜﺮ ﺧﻮدﺗﺎن را ﺑﺎ دﻧﯿﺎی ﺷﻲء ﮔﺮاﻳﻲ ﺗﻄﺒﯿﻖ دھﯿـﺪ. در اداﻣـﻪ ﺧﻮاھﯿـﺪ دﻳـﺪ ﻛـﻪ در ﺳـﻲ ﺷـﺎرپ ھـﺮ ﭼﯿـﺰی‬ ‫ﺷﻲء اﺳﺖ ﺣﺘﻲ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ.‬

                  

 



ادامه مطلب ...

ابزار هدایت به بالای صفحه

💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران