تبلیغات
سی شارپ کده - رشته ها در سی شارپ

سی شارپ کده

چهارشنبه 16 شهریور 1390

رشته ها در سی شارپ

نویسنده: حمیدرضا مهدوی پناه   طبقه بندی: نکته های آموزشی، 

کار کردن با رشته های یک امر معمول برای برنامه نویسان سی شا رپ به حساب می آید . فریمورک دات نت ابزاهای بسیار متنوعی را برای کار با رشته ها فراهم کرده است.

اولین چیزی که باید در کار با رشته ها در سی شارپ مد نظر داشت این است که رشته ها در سی شارپ از نوع رفرنس هستند . نوع های رفرنس در دات نت بر روی پشته ی مدریت شده قرار دارند پس رشته ها در سی شارپ توسط جمع کننده ی دور ریز ها(garbage collector )  مدیریت میشوند و این باعث میشود تا آن ها به طور خودکار از بین نروند  وقتی  که از محدوده ی دید خارج میشوند.


تعریف آرایه ها در سی شارپ خیلی ساده است . در پایین مثالی از تعریف آرایه ها را میبینید :

string s1;
 توجه داشته باشید که رشته ها در سی شارپ هیچ گونه مقدار پیشفرضی ندارند و شما برای دسترسی به آن ها باید ابتدا به آن ها مقدار بدهید :

string s1;
Literal1.Text = s1;   خطای هنگام اجرا در بردارد

string s2 = "";       ساده ترین را برای تعریف یک رشته و استفاده از آن
Literal1.Text = s2;
اگر برای یک رشته مقدار اولیه ای قرار ندهیم و بخواهبم از آن استفاده کنیم با خطا روبرو میشویم چون در سی شارپ برای استفاده از هر منغیر و شیئی ابتدا باید آن را مقدار دهی کرد.

تعداد زیادی مند برای کار با رشته ها در سی شارپ قرار دارد

برای مثال :

متد ToUpper تمام حروف یک رشته را تبدیل به حروف بزرگ میکند :


;"string s1 ="hello csharpworld
;()s1.ToUpper
 و حالا مقدار s1 برابر است با HELLO CSHARP WORLD



پیوند دادن رشته ها ( String Concatenation )

سی شارپ راهی آسان برای الحاق رشته ها ایجاد نموده : استفاده از عملگر + ( جمع )

;string s1
;"s1="Hong
;"string s1="Kong
;"textbox1.text="s1+s1

مقدار تکست باکس 1 برابر Hong Kong خواهد شد.

درست است که استفاده از عملگر جمع برای الحاق رشته ها بسیار راحت است ولی این روش از لحاظ کارایی بهترین روش نیست . استفاده از این روش باعث میشود تا شیئی دیگر از نوع رشته ساخته شود سپس مقدار آن برابر مجموع دو رشته مورد نظر ما میشود و سپس رشته ایجاد شده در متغیر ما ریخته میشود و اگر در برنامه ای بخواهی تا به وفور از رشته ها را با هم ترکیب کنیم این راه , راه خوبی نخواهد بود زیرا از آن جایی که در سی شارپ هر متغیر توسط garbage collector از بین میرود , رشته رابط که دور از چشم ما ایجاد شده از حافظه ی رم استفاده میکند و استفاده ی زیاد از عملگر جمع برای الحاق دو رشته در برنامه باعث استفاده ی زیاد از رم میشود و این پیامد خوشایند نخواهد بود.
برای پیوند دادن دو رشته دات نت فریکورک متدی را معرفی کرده که همان کار عملگر جمع را برای رشته ها میکند با این تتفاوت که دیگر رشته میانی به وجود نخواهد آمد و در نتیجه کارایی این متد زیاد تر است 
 متد Append دقیقا کار مشابه عملگر جمع را برای رشته ها انجام میدهد نحوه ی استفاده از این متد به این شکل است :
;string s1
;"s1="Hong
;sting s2
;"s2="Kong
;(s1.Append(s2
این متد ورودی از نوع رشته دریافت کرده و آن را در ادامه ی رشته ی نام برده شده ( در اینجا s1 ) اضافه میکند.




کاراکتر های خاص

زبان سی شارپ نیز مثل دیگر زبان های خانواده ی C دارای کاراکتر هایی است که به وصیله ی آن ها میتوان خروجی های رشته ای خاصی را به وجود آورد 
این کاراکتر های با یک بک اسلش شروع میشوند و در پی آن ها یک کاراکتر مخصوص می آید . در ادامه چند تا از این کاراکتر ها به همراه خروجی آن ها آورده شده است

'\     خروجی آن یک ' است چون در سی شارپ این کاراکتر رزرو شده است نمیتوان آن را به صورت معمولی برای چاپ در خروجی نوشت و اگر بخواهیم تا در خروجی همچین کاراکتری چاپ شود باید از عبارت '\  استفاده کنیم


"\  این عبارت دقیقا کار عبارت بالا را انجام میدهد با این تفاوت که به جای ' این کاراکترکاراکتر " را چاپ میکند


\\  برای چاپ بک اسلش در سی شارپ نمیتوان خود آن را نوشت چون کامپایلر خطا میدهد برای این کار باید از دو بک اسلش استفاده کرد.

r\n\ این عبارت نوشته را به یک خط بعد میبرد . به طور کلی مقدار بازگشتی آن new line است و به جای استفاده از آن میتوان از دستور Environment.NewLine استفاده کرد که دقیقا کار مشابه را انجام میدهد

t\  این عبارت یک فاصله تب عمودی بر میگرداند یعنی فاصله ی معینی حدودا به اندازه ی این کلمه     تا این کلمه را ایجاد مکند و برای مرتب سازی کلمات کاربرد دارد برای مثال فرض کنید که میخواهید یه جدول ضرب درست کنید تا با زدن یک دکمه جدول ضرب به شکل رشته در یک تکست باکس به نمایش در آید اگر برنامه را اجرا کنید کلمات به هم ریخته خواهند بود ولی اگر در ادامه ی هر عدد عبارت گفته شده را بنویسید کلمات به صورت منظم چاپ خواهند شد.


نکته :

راه دیگری نیز برای چاپ کردن کاراکتر های ویژه در سی شارپ وجود دارد : کاراکتر @ 
اگر برای مثال میخواهید عبارت روبرو را در تکست باکسی چاپ کنید  '/csharp/'   
باید از عباراتی ویژه ای که برای آن ها آورده شده استفاده کنید اما اگر میخواهید کارتان ساده تر باشد 
میتوانید از کاراکتر @ قبل از شروع نوشتن رشته استفاده کنید برای مثال

 ;string s
 ;"'/s=@"'/chsarp
;textbox1.Text=s

دستور روبرو عبارت '/csharp/' را چاپ میکند
به زبان دیگر با آوردن کاراکتر @ دقیقا چیزی که تایپ کرده اید نمایش داده خواهد شد حتی اگر در رشته خود از کاراتر های رزرو شده استفاده کنید


مبحث رشته ها در سی شارپ مبحث پیشرفته و بزرگی است و  تسلط یافتن بر این مبحث نیاز به تمرین و مطالعه ی زیاد دارد امیدوارم توانسته باشم با این مقاله مختصر کمکی به شما برنامه نویس عزیز کرده باشم. 

نظرات() 
خرید بک لیتک
پنجشنبه 17 خرداد 1397 06:45 ب.ظ
سلام.ممنون .خیلی خوب بود.از دست اندرکاران وبسایت به این خوبی سپاسگزارم
Cialis prices
دوشنبه 7 خرداد 1397 01:37 ق.ظ

You actually stated that perfectly!
warnings for cialis cialis canadian drugs cialis without a doctor's prescription cialis pills boards deutschland cialis online cialis professional yohimbe cialis free trial cialis generika buy cheap cialis in uk cialis patentablauf in deutschland
резинки для фитнеса украина
سه شنبه 11 اردیبهشت 1397 01:59 ب.ظ
купить спортивные резинки киев
резинка для фитнеса харьков где купить
фитнес резинки какое сопротевление
резинки для фитнеса днепр
резиновая петля купить киев
Buy generic cialis
جمعه 7 اردیبهشت 1397 06:09 ب.ظ

Truly loads of great facts!
cialis dosage recommendations cilas ou acheter du cialis pas cher cialis 20mg preis cf cialis rckenschmerzen cialis canada cialis generisches kanada cialis savings card usa cialis online cialis ahumada
Viagra generico
سه شنبه 4 اردیبهشت 1397 01:47 ق.ظ

Many thanks. Plenty of facts.

can you buy viagra at cvs where buy viagra how to order viagra pills buy genuine viagra buy herbal viagra buying viagra from canada where can i buy viagra without buy viagra with prescription viagra online buy buy viagra online safely
Online cialis
جمعه 17 فروردین 1397 05:45 ب.ظ

Perfectly spoken really. .
order cialis from india miglior cialis generico canadian discount cialis how do cialis pills work tadalafil online prescriptions cialis venta de cialis canada low cost cialis 20mg cialis dosage prix cialis once a da
Buy cialis online
جمعه 3 فروردین 1397 01:10 ب.ظ

Nicely put. Thank you.
cialis venta a domicilio cialis tadalafil online cialis flussig cialis pills boards cialis diario compra cialis for sale in europa cialis online cialis preise schweiz cialis 100 mg 30 tablet tadalafil 20mg
Cialiswal
یکشنبه 27 اسفند 1396 08:33 ب.ظ

You actually said that very well!
can i take cialis and ecstasy click here to buy cialis generic cialis soft gels when will generic cialis be available cialis bula how do cialis pills work how does cialis work cialis coupon cialis in sconto generic cialis
jocuri mario
پنجشنبه 10 اسفند 1396 10:11 ب.ظ
اوه خدای من! شخص مقاله قابل توجه! با تشکر، با این حال من با مشکلات شما را تجربه می کنم
RSS من نمی فهمم چرا من نمی توانم به آن بپیوندم.

آیا کسی دیگری با داشتن مشکلات مشابه در RSS دارد؟

هر کسی که جواب را می داند می تواند به شما مهربانی پاسخ دهد؟ با تشکر!!
masquerade the faceless cheats
چهارشنبه 9 اسفند 1396 04:09 ق.ظ
سلام، من اعتقاد دارم که وب سایت شما ممکن است دارای سازگاری مرورگر باشد
مسائل وقتی به وبلاگ شما در Safari نگاه می کنم، به نظر می رسد
خوب، اما در باز کردن در I.E.، آن را به برخی از مسائل همپوشانی.
من به سادگی می خواستم به شما سرعتی سریع بدهم!
به جز آن، سایت عالی!
What causes burning pain in Achilles tendon?
دوشنبه 27 شهریور 1396 07:06 ق.ظ
My partner and I stumbled over here from a different website and thought I might check things out.
I like what I see so now i'm following you. Look forward to exploring your web page yet
again.
How can you heal an Achilles tendonitis fast?
پنجشنبه 16 شهریور 1396 08:20 ق.ظ
Whats up very cool site!! Guy .. Excellent ..

Wonderful .. I will bookmark your web site and take the feeds
also? I'm glad to seek out a lot of helpful info here within the post, we
need work out extra strategies on this regard, thank you for
sharing. . . . . .
Tosha
دوشنبه 16 مرداد 1396 09:50 ب.ظ
It's very trouble-free to find out any matter on net as compared to textbooks, as I found this article at this site.
free std testing near me
دوشنبه 5 تیر 1396 01:40 ق.ظ
بسیار چلیپا از خود نوشتن در حالی
که ظاهر شدن دلنشین در آغاز آیا واقعا نشستن خوب با من پس از
برخی از زمان. جایی درون پاراگراف شما در واقع موفق
به من مؤمن اما فقط برای کوتاه در حالی که.
من این مشکل خود را با جهش در منطق و شما خواهد را سادگی به
پر همه کسانی شکاف. که شما که می توانید
انجام من می قطعا بود در گم.
Jamila
دوشنبه 25 اردیبهشت 1396 03:49 ق.ظ
Wow, fantastic blog layout! How long have you been blogging
for? you made blogging look easy. The overall look of your site is excellent,
let alone the content!
BHW
جمعه 25 فروردین 1396 08:26 ب.ظ
This is my first time visit at here and i am really happy to read all at
one place.
چرم
جمعه 4 اردیبهشت 1394 03:40 ب.ظ
ممنون تشکر فراوان
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر

آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :