نحوه استفاده از متد ()String.Format

پنجشنبه 23 مهر 1394

فرمت بندی رشته خروجی با استفاده از متد string.Format بسیار مفید و کاربردی است. این متد اکثرا در برنامه نویسی با زبان های سی شارپ و VB.NET استفاده می شود. string.Format اولین بار در NET Framework 1.1. منتشر شد. این متد برای جایگزین کردن فرمت هر آیتمی در یک رشته مشخص با رشته مساوی از مقدار یک آبجکت مترادف، استفاده می‌شود.

نحوه استفاده از متد ()String.Format

ممکن است در ابتدا درک روشنی از معانی نشانه گذاری هایی مانند """, "", ",", ":", "#", "-", ";" نداشته باشید اما در نهایت می بینید که استفاده از آنها بسیار ساده و راحت است.

String.Format یک قالب رشته ایی (formatstring) و لیستی( با طول دلخواه) از آرگومان ها را برای قالب بندی رشته می گیرد. در این قالب رشته ایی می تواند یک متن دلخواه و تعدادی placeholder(جا نگهدار) قرار داد که با علامت { } مشخص می شوند و فرمت آرگومان های نوشته شده را نشان می دهد. برای مثال به کد زیر توجه کنید:

Dim s = String.Format("Now it's {0,-20:hh:mm} - hurry up!", Date.Now)

در کد بالا می بینیم که آرگومان و یا آرگومانها بعد از "," قرار می گیرند و این آرگومانها در خروجی در جایی که علامت { } قرار دارد می نشینند.

حالت استفاده به صورت پیش فرض اینگونه است:

string.Format(“Hello {0}”, “World”); // "Hello World"

همانطور که می بینید آرگومان داخل آکولاد باز و بسته یک فرمت رشته است که با آرگومان 0 جایگزین می شو و دارای فرمت زیر است:

{index[,alignment][:formatString]}

براکت ها، المانهای اختیاری را مشخص می کنند و پرانتزهای باز و بسته ضروری هستند.

کد زیر نمونه ای از استفاده String.Format را نشان می دهد:

        private static void Main(string[] args)
        {
            int Amount = 25000;
            Console.WriteLine(Amount.ToString("#,0 Rial"));

        }

و خروجی آن به صورت زیر می شود:

آیتم فرمت دارای المان های زیر است:

Index:
یک اندیس مبنی بر صفر (اندیس هایی که از صفر شروع می شوند) که رشته را در این موقیعت نمایش می دهد. اگر این آرگومان null باشد یک رشته خالی در این موقعیت در قرار داده می شود.

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

FormatString:
این آرگومان اختیاری است و یک رشته است که فرمت آرگومان مربوطه رشته خروجی را تعیین می کند. اگر از این آرگومان صرف نظر کنید، آرگومان مربوطه متد ToString بدون پارامتر (برای نمایش رشته مربوطه) فراخوانی می شود. اگر یک formatString تعیین کنید، آرگومانی که بوسیله آیتم فرمت رجوع داده می شود باید اینترفیس IFormattable را پیاده سازی کند.

نوع داده هایی که از رشته های فرمت دار پشتیبانی می کنند عبارتند از:
• تمام نوع داده های صحیح و اعشاری
• نوع داده هایDateTime  و DateTimeOffset
• تمام نوع داده های شمارشی
• مقادیر TimeSpan
• GUID ها (برای اطلاعات بیشتر به آدرس http://msdn.microsoft.com/en-us/library/System.Guid.aspx مراجعه کنید.)

توجه داشته باشید که هر نوعِ سفارشی می تواند اینترفیس IFormattable را پیاده سازی کند و یا یک نوع IFormattable پیاده سازی شده را توسعه دهد.

برای کسب اطلاعات و مثال های بیشتر به مستندات String.Formatدر MSDN و مقاله ی چیزهایی که با String.Format می‌توانید انجام دهیدمراجعه کنید.

نکات:

متدهای دیگر نیز از  formatstring پشتیبانی می کنند. برای مثال؛

Console.WriteLine(string, <argList>) 

و یا:

Dim s = Date.Now.ToString("hh:mm")

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 10k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید