در زبان سی شارپ رایجترین روشهای تبدیل رشته به عدد صحیح، شامل استفاده از متد Parse()، کلاس Convert و متد TryParse() هستند. از زبان سی شارپ برای انجام پروژهها مختلف استفاده میشود. از کاربردهای مختلف زبان سی شارپ میتوان به ساخت نرمافزارهای دسکتاپ، بازیسازی و غیره اشاره کرد. در بسیاری از پروژههای سی شارپ، لازم میشود که مقدار رشتهای را به عدد تبدیل کنیم. گاهی وقتها در حال کار با دادههای ورودی توسط کاربر هستیم یا اینکه دادههایی را از منبع خارجی به برنامه وارد میکنیم. تبدیل رشته به عدد در سی شارپ یکی از رایجترین وظایفی است که توسعهدهندگان نرمافزار باید بلد باشند.

در این مطلب از مجله فرادرس، چند مورد از رایجترین روشهای تبدیل رشته به عدد در سی شارپ را بررسی کردهایم. برای بررسی هر روش، سینتکس مربوط به آن را همراه با مثالهای کدنویسی شده، بررسی کردیم. فرقی نمیکند که توسعهدهنده حرفهای باشید یا برنامه نویسی تازه کار، در این مطلب روشهای کاربر پسندی را برای تبدیل رشته به عدد یاد میگیرید.
چه روش هایی برای تبدیل رشته به عدد در سی شارپ وجود دارند؟
برای تبدیل رشته به عدد در سی شارپ، روشهای مختلفی وجود دارند. در این مطلب، رایجترین روشهای اجرای این عملیات را معرفی کردهایم. در فهرست زیر، این روشها را نام بردهایم.
- استفاده از متد Parse()
- استفاده از کلاس Convert
- استفاده از متد TryParse() - استفاده از این روش بیشتر از بقیه موارد توصیه شده است.

زبان برنامه نویسی سی شارپ یکی از مشهورترین زبانهای برنامه نویسی است. یادگیری این زبان برنامه نویسی، نوجوانان را برای ورود به شغلهای مربوط به صنعت فناوری اطلاعات و تولید نرمافزارهای کاربردی آماده میکند. یکی از بهترین فیلمهای آموزشی برای نوجوانان فیلم آموزش برنامه نویسی سی شارپ، ویژه نوجوانان از فرادرس است. به منظور کمک به مخاطبین مجله، لینک این فیلم را در پایین نیز قرار دادهایم.
در بخشهای بعدی مطلب همه روشهای بالا را یک به یک همراه با مثالهای کدنویسی شده، آموزش دادهایم.
چگونه با کمک آموزشهای فرادرس، زبان سی شارپ را یاد بگیریم؟
فرادرس، مجموعه آموزش کاملی را برای کمک به یادگیری زبان برنامه نویسی سی شارپ تهیه و منتشر کرده است. با گذشت زمان، مطالب جدیدتری نیز به این مجموعه آموزش افزوده میشود. دانشجویان، افراد شاغل یا افراد علاقهمند با مراجعه به این فیلمهای آموزشی میتوانند از مباحث پایهای مثل سینتکس تا موضوعات پیشرفتهای مثل برنامهنویسی شیءگرا را یاد بگیرند. این دورهها توسط اساتید حرفهای و با کیفیت بالا تهیه شدهاند.

زبان C# با سیستمها و فناوریهای مختلف بهخوبی ترکیب میشود. این زبان، ساده، امن و انعطافپذیر است. در حال حاضر، C# در حوزههای مختلفی استفاده میشود. مثلاً برای ساخت نرمافزارهای دسکتاپ، وب، موبایل و بازی. به همین دلیل، افراد زیادی برای رسیدن به شغل دلخواهشان شروع به یاد گرفتن این زبان میکنند. فرادرس هم با توجه به نیاز هرچه بیشتر به نیروی متخصص، تلاش کرده دورههای خود را با کیفیت علمی بالا و روش تدریس خوب تولید کند. در پایین، چند مورد از فیلمهای آموزش سی شارپ در فرادرس را معرفی کردهایم.
متد Parse در سی شارپ
از متدهای Parse() میتوان برای تبدیل همه انواع پایه استفاده کرد. به کار بردن این دسته از متدها سادهترین روش برای تبدیل رشته به عدد در سی شارپ است.
متدهای Parse() برای تبدیل رشته به انواع اعداد صحیح علامت دار ۱۶ بیتی، ۳۲ بیتی و ۶۴ بیتی به کار میروند. سینتکس این متدها به ترتیب به شکلهای زیر نوشته میشود.
- Int16.Parse()
- Int32.Parse()
- Int64.Parse()
متد Parse() میتواند تا ۳ پارارمتر اصلی دریافت کند.
در کادر بالا ۳ سینتکس مختلف برای دریافت پارامتر ورودی توسط متد Parse() نوشته شده است.
- String s : این پارامتر همان رشتهای را نشان میدهد که باید به عدد تبدیل شود.
- NumberStyles style : پارامتر دوم شامل حالت عدد است. در واقع الگویی را مشخص میکند که عدد باید طبق آن نمایش داده شود.
- IFormatProvider provider : پارامتر سوم مشخص میکند که رشته بر اساس کدام زبان یا منطقه نمایش داده شده است. برای مثال نقطه بین اعداد در انگلیسی آمریکایی نشاندهنده علامت اعشار است. اما شاید در زبان دیگری برای جداکردن سه رقم، سه رقم اعداد بزرگ به کار برده شود.
مثال استفاده از متد Parse برای تبدیل رشته به عدد در سی شارپ
در کادر زیر، رشتههای تشکیل شده از ارقام را به اعداد تبدیل کردهایم. در این مثال برای تمام سینتکسهای بالا نمونهای را پیادهسازی کردیم.
همینطور که در مثال بالا مشاهده میشود، هر شکل معتبری از ارقام را میتوان به عدد معادل آن رشته تبدیل کرد. متد Parse() به برنامه نویسان کمک میکند تا رشتههای ساخته شده از ارقام را به عدد تبدیل کنند. این رشته از متغیر NumberStyles با نوع enum در سی شارپ، استفاده میکند. برای مثال، این متد میتواند رشتههای شامل پرانتز یا رشتههای نوشته شده با الگوهای مختلف نمایش اعداد را به درستی تشخیص دهد. متد Parse() حتی میتواند رشتههای عددی دارای نمادهای پولی را تشخیص داده و به عدد تبدیل کند.

اما باید توجه کنیم که رشته ارسال شده به متد فقط شامل مقادیر معتبر عددی باشد. یا اینکه در محدودهی عددی مورد نظرمان قرار داشته باشد. برای درک بهتر این موضوع، چند مثال در پایین نوشتهایم. همه این مثالها باعث برگشتن پیغام خطا میشوند.
تمام خطهای بالا باعث برگشتن پیغام خطا میشوند. در فهرست زیر، خطوط کد بالا را به ترتیب بررسی کردهایم.
- خط اول: این خط کد پیغام خطای FormatException برمیگرداند. زیرا نوع داده ارسال شده به تابع را نمیتوان به مقدار عددی تبدیل کرد.
- خط دوم: این خط کد هم پیغام خطای FormatException برمیگرداند. زیرا هیچ مقداری به تابع ارسال نشده است. در واقع رشته خالی ارسال شده که مقدار معادل عددی ندارد.
- خط سوم: این خط هم پیغام خطای FormatException برمیگرداند. زیرا نقطه برای نمایش مقدار اعشاری به کار برده میشود. اما متد int.Parse(“100.00”) باید نتیجه را به عدد صحیح تبدیل کند.
- خط چهارم: پیغام خطای FormatException به بیرون برمیگردد. زیرا وجود حرف a باعث نامعتبر شدن عدد میشود.
- خط پنجم: پیغام خطای خطای مربوط به سرریز محدوده را به بیرون برمیگرداند. زیرا مقدار ارسال شده به تابع Parse() از محدوده قابل نمایش توسط «Int» بزرگتر است.
مزایا و معایب استفاده از Parse
استفاده از متد Parse() شامل مزایا و معایب مشخصی است. در فهرست زیر مزایای استفاده از این متد را نوشتهایم.
- مقادیر رشتهای معتبر را به مقدار عدد صحیح معادل آنها تبدیل میکند.
- از انواع «الگوهای عددی» (Number Styles) پشتیبانی میکند.
- از قالبهای عددی مخصوص مناطق مختلف، پشتیبانی میکند.
در فهرست پایین هم معایب استفاده از متد Parse() را نوشتهایم.
- رشته ورودی باید از ارقام معتبر عددی تشکیل شده باشد.
- رشته ورودی حتما باید در محدوده قابل نمایش توسط نوع int نوشته شده باشد. البته به شرطی که متد Parse() با نوع int فراخوانی شود.
- در زمان تبدیل مقادیر null یا رشتههای عددی نامعتبر، پیغام خطای استثنا برمیگرداند.
کلاس Convert
روش دیگری که میتوان برای تبدیل رشته به عدد در سی شارپ به کار گرفت، استفاده از کلاس «Convert» است. کلاس Convert متدهای متنوعی دارد. این متدها برای تبدیل انواع دادههای پایه به یکدیگر به کار میروند.
البته برای اینکه بتوانیم به شکل حرفهای از این کلاس و متدهای فراوان تعریف شده در آن استفاده کنیم، لازم است که با مفهوم شی گرایی در سی شارپ آشنا باشیم. در صورت نیاز به کمک در این زمینه میتوانید مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
متدهای مورد استفاده برای تبدیل انواع مختلف به نوع Int در کلاس Convert را در فهرست زیر نوشتهایم.
- متد Convert.ToInt16(): متد Convert.ToInt16() در خروجی عدد صحیح ۱۶ بیتی برمیگرداند.
- متد Convert.ToInt32(): این متد در خروجی عددی با نوع Integer به اندازه ۳۲ بیت برمیگرداند.
- متد Convert.ToInt64(): متد Convert.ToInt64() هم در خروجی عدد صحیح ۶۴ بیتی برمیگرداند.

مثالی برای استفاده از کلاس Convert
در کادر زیر برای هر کدام از متدهای بالا، مثالی را نوشتهایم.
این متدها هم دارای محدودیتهایی هستند. برای مثال، کدهای نوشته شده در پایین در زمان اجرا پیغام خطا میدهند.
تمام خطهای بالا باعث برگشتن پیغام خطا میشوند. در فهرست زیر، خطوط کد بالا را به ترتیب بررسی کردهایم.
- خط اول: این خط کد پیغام خطای FormatException برمیگرداند. زیرا رشته خالی را نمیتوان به مقدار عددی تبدیل کرد.
- خط دوم: این خط کد هم پیغام خطای FormatException برمیگرداند. زیرا وجود علامت کاما «,» باعث میشود که رشته به شکل عدد اعشار شناخته شود.
- خط سوم: این خط هم پیغام خطای FormatException برمیگرداند. زیرا عدد داخل پرانتز در برنامهنویسی به عنوان عدد معتبر شناخته نمیشود.
- خط چهارم: پیغام خطای FormatException به بیرون برمیگردد. زیرا وجود حرف a باعث نامعتبر شدن عدد میشود.
- خط پنجم: پیغام خطای خطای مربوط به سرریز «OverflowException» به بیرون برمیگرداند. زیرا مقدار ارسال شده به تابع Parse() از محدوده قابل نمایش توسط Int بزرگتر است.
مزایا و معایب استفاده از کلاس Convert
در برنامه نویسی، هر متدی نقاط قوت و ضعفی دارد. استفاده از کلاس Convert هم شامل مزایا و معایب خاص خود است. در فهرست زیر مزیتهای استفاده از کلاس Convert را نوشتهایم.
- متدهای این کلاس میتوانند ارقام را از هر نوعی به عدد صحیح تبدیل کنند.
- کلاس Convert مقدار «NULL» را به صفر تبدیل میکند. در نتیجه در زمان انجام این کار با پیغام خطا روبهرو نمیشویم.
در فهرست زیر مهمترین نقاط ضعف استفاده از کلاس Convert را نوشتهایم.
- رشته ورودی فقط باید شامل عددهای معتبر باشد. یعنی نباید فرمت خاص یا شکل دیگری از عدد در آن وجود داشته باشد.
- کلاس Convert فقط با مقدار رشتهای از عدد صحیح معتبر کار میکند.
- رشته ورودی باید در محدوده، عدد صحیحی باشد که توسط متد IntXX فراخوانی شده است. یعنی با توجه به متد فراخوانی کننده باید در یکی از محدودههای Int16 یا Int32 یا Int64 باشد.
- رشته ورودی نباید شامل کاراکتر پرانتز، کاما یا سایر کاراکترهای غیر عددی باشد.
- برای تبدیل اعداد در محدودههای متفاوت، حتما باید از متدهای مختلفی هم استفاده کنیم. به عنوان مثال، برای تبدیل اعداد صحیح بزرگتر از ۳۲۷۶۷ نمیتوانیم از متد Convert.ToInt16() استفاده کنیم.
اجرای پروژه های زبان برنامه نویسی #C در فرادرس
زبان برنامه نویسی #C کاربردهای مختلفی دارد. توسعهدهندگان زبان سی شارپ میتوانند پروژههای مختلفی را پیادهسازی کنند. هر کدام از این پروژهها شامل نکات خاص و منحصر به فردی هستند. فرادرس برای کمک به آمادهسازی دانشجویان به منظور ورود به بازار کار، پروژههای مختلف مربوط به دنیای واقعی را پیادهسازی کرده است. فرایند اجرای این پروژهها در قالب فیلمهای آموزشی پروژهمحور تولید و منتشر شدهاند. برای دسترسی به این فیلمها باید از صفحه مجموعه آموزش پروژهمحور سی شارپ استفاده کنید.
در فهرست بالا چند مورد از فیلمهای آموزشی پروژهمحور سی شارپ را معرفی کردهایم. با کلیک بر روی تصویر زیر، به صفحه اصلی این مجموعه آموزشی در سایت فرادرس هدایت میشوید.

متد TryParse
متدهای TryParse() برای تبدیل کردن همه انواع داده پایه در سی شارپ به کار برده میشود. انواع داده مختلف میتوانند این متد را فراخوانی کنند. متدهای TryParse() مقدار رشتهای را به همان نوعی تبدیل میکند که آن را فراخوانی کرده است. استفاده از متدهای TryParse() روش توصیه شده برای تبدیل رشته به عدد در سی شارپ است.
متد TryParse() مقدار با نوع رشته را به عدد صحیح علامتدار تبدیل میکند. این متد میتواند مقادیر دریافتی خود را به عددهای ۱۶، ۳۲ و ۶۴ بیتی تبدیل کند. متد TryParse() در خروجی مقداری با نوع Boolean بر میگرداند. این مقدار نشان میدهد که عملیات تبدیل با موفقیت انجام شده است یا نه. به همین دلیل، متد TryParse() هرگز پیغام خطا برنمیگرداند.
متدهای TryParse() برای همه نوع عدد صحیح قابل استفاده هستند.
- Int16.TryParse()
- Int32.TryParse()
- Int64.TryParse()

سینتکسهای استفاده از متد TryParse() را در کادر زیر نوشتهایم.
متد TryParse() چهار پارامتر اصلی دریافت میکند. ۳ پارامتر اول آن شبیه به پارمترهای دریافت شده توسط متد Parse() بوده و همان کاربردها را دارند. پارامتر چهارم out است. پارامتر out برای نشان دادن مقدار خروجی به کار برده میشود. اگر رشته دریافتی با موفقیت به عدد تبدیل شد، مقدار true برمیگردد. عدد بدست آمده از رشته در پارامتر out ذخیره میشود.
مثال استفاده از متد TryParse برای تبدیل رشته به عدد در سی شارپ
در مثال زیر، روش استفاده از متد TryParse() را بررسی کردهایم.
در کادر زیر هم با استفاده از رشتههای عددی نامعتبر، محدودیتهای این متد را نشان دادهایم.
در مثال بالا، کد numberStr = “123456as” مقدار عددی نامعتبر است. اما متد Int32.TryParse() در خروجی پیغام خطا برنمیگرداند. این متد برای انجام عملیات نامعتبر مقدار false برمیگرداند.
بنابراین متد TryParse() امنترین روش برای تبدیل رشتههای رقمی به مقدار معادل عددی آنها است. به خصوص در زمانی که برنامه نویس نمیداند، رشته داده شده حاوی مقادیر معتبر است یا نه.
مزایا و معایب استفاده از متد TryParse
استفاده از این متد هم شامل مزایا و معایبی است که باید با آنها آشنا باشیم. در فهرست زیر، نکات مثبت مربوط به استفاده از متد «TryParse» را نوشتهایم.
- انواع رشتههای رقمی را به اعداد صحیح تبدیل میکند.
- الگوهای رقمی نوشته شده مختلف را به الگوهای عددی معادل آنها تبدیل میکند.
- رشتههای نوشته شده بر اساس الگوی مورد استفاده در مناطق مختلف را به عدد تبدیل میکند.
- متد TryParse() هرگز پیغام خطا برنمیگرداند. در صورتی که این متد موفق به تبدیل رشته به عدد نشود در خروجی مقدار false برمیگرداند.
البته این متد هم دارای محدودیتهایی است که قبل از استفاده باید نسبت به آنها آگاه باشیم. برای مثال همیشه باید از پارامتر out استفاده کنیم. نقطه ضعف بعدی متد TryParse() این است که باید تعداد خط کد بیشتری بنویسیم. به جای اینکه مانند روشهای قبلی فقط یک متد را فراخوانی کنیم.
جمعبندی
در این مطلب از مجله فرادرس روشهای تبدیل رشته به عدد در سی شارپ را بررسی کردهایم. این عملیات، وظیفه سادهای است. اما در پروژههای بزرگی مانند ساخت بازی با سی شارپ، ساخت اپلیکیشنهای تحت وب و غیره هم شاید به کار برده شود. این وظایف ساده باید به بهترین روش ممکن پیادهسازی شوند. در غیر این صورت ممکن است منجر به بروز خطا در برنامه شود. برای انجام این کار سه روش کلی در سی شارپ وجود دارد.
- استفاده از متد Parse()
- استفاده از کلاس Convert
- استفاده از متد TryParse()
استفاده از متد TryParse() معمولا بهترین روش تبدیل رشته به عدد در سی شارپ است. زیرا در صورت عدم موفقیت در خروجی پیغام خطا برنمیگرداند. به عنوان توسعهدهنده سی شارپ لازم است که در انجام وظایف ساده مهارت داشته و با روشهای مختلف انجام کار آشنا باشیم.
source