رشته ای در سی شارپ دارای امکانات متعددی هستند که به مرور زمان و در طی سال های اخیر این امکانات بهینه تر و بهتر شده اند . ما در این مطلب به تعدادی از این امکانات می پردازیم . همچنین می توانید در معرفی نوع داده ای رشته یا String در سی شارپ در مورد متغییر های رشته ای اطلاعات بیشتری کسب کنید.
همچنین شما می توانید دوره رایگان آموزش مقدماتی سی شارپ رو توی سایت ما مشاهده کنید.
سی شارپ دارای امکانات بسیاری است که در زیر به بخشی از این متد ها و نحوه استفاده از انها می پردازیم:
عمل تبدیل را برای ما انجام می دهد و در واقع برای تبدیل هر نوعی در سی شارپ به نوع رشته (string) از ToString استفاده می کنیم.
در این مثال ما یک مقدار صحیح از نوع int را به نوع رشته تبدیل کرده ایم .
مثال :
در روش بالا هم همان عملیات تبدیل نوع عددی به رشته انجام شده است . در واقع با استفاده از کاراکتر + ما این عمل تبدیل را انجام داده ایم .
با استفاده از کاراکتر $ می تواینم به صورت درون خطی عملیات تبدیل رشته را انجام دهیم. هر متغیری که در {} قرار دهید در پس زمینه به رشته تبدیل می شود.
با استفاده از متد فرمت می توانیم قالب بندی رشته های خروجی را مرتب تر کنیم.
در مثال بالا ما یک عبارت متنی را با استفاده از متد Format ایجاد کرده ایم .
نکات :
ولی در صورتی که مقادیر سمت راست بیشتر باشد کامپایلر از مقادیر اضافه صرف نظر می کند.
با استفاده از کاراکتر + می توان این کار را انجام داد :
در مثال بالا دو رشته را با متد Concat بهم متثل کرده ایم . این متد آرایه ای از رشته ها را از ما به عنوان ورودی میگیره و عملیات جوین رشته ها رو انجام می دهد . یعنی هر تعداد رشته دارید به این متد ارسال می کنید و همه رشته ها با هم جوین می شوند.
در سی شارپ با استفده از متد Equals این امکان فراهم شده است تا بتوانید دو رشته را با هم مقایسه کنید .
خروجی مثال بالا :
رشته های Immutable هستند . یعنی بعد از تعریف یک متغیر از نوع رشته ، مقدار رشته قابل تغییر نیست . عه مگه میشه ؟ من تغییر دادم و شده !!!!!!!!!!!!!🙃
بله همینطور هست از نظر ظاهری تغییر میکنه ولی توی ساختار قضیه کمی متفاوت هست.
ابتدا شما یک متغییر تعریف می کنید به صورت زیر:
در حال حاضر یک خانه حافظه به این متغیر اختصاص داده شده است . حال با استفاده از متد Concat یک عبارت به این متغیر می چسبانید.
در ظاهر شما در عمل مقدار متغیر strMessage را تغییر داده اید و خب نتیجه هم همان را نشان میدهد . اما در پس زمینه اتفاقاتی افتاده عجیب:
در واقع دو خانه حافظه اختصاص داده می شود هنگام تغییر مقدار رشته و بعد از تغییر رشته ، garbage collection خانه اول حافظه را آزاد میکند و متغیر در خانه جدید آرام میگیرد.
خب تا همینجا داشته باشید مطلب رو ، توی پست بعدی براتون مابقی ماجرا رو شرح میدم.