کار با PlaceHolder در سی شارپ PlaceHolder in C-sharp

#C

توسط reza-irdev در 6 سال پیش
0 1.4k 1 6 سال پیش
reza-irdevonline
0

PlaceHolder از دو کلمه ی Place به معنای مکان و Holder به معنای نگهدارنده تشکیل شده که یکی از کاربرد های ساده ی آن را در زیر برای شما میخواهم شرح بدهم! همانطور که احتمالا از قبل میدانید عملگر اتصال رشته در زبان سی شارپ (همچنین ویژوال بیسیک) عملگر + است مثلا زمانی که دو رشته ی زیر را میخواهیم بهم متصل کنیم از دستور زیر استفاده میکنیم:

string f=Meysam;
String s=Valiolahi;
String Merg=f + s;

حالا تصور کنید میخواهیم یک فضای خالی در میان دو رشته اضافه کنیم که یقینا متوجه شدید که مجدد احتیاج دارید تا با استفاده از عملگر + و " " یک فضای خالی به رشته ی حاصله اضافه کنید کند:

string f=Meysam;
String s=Valiolahi;
String Merg=f +" "+ s;

خوب تا اینا متوجه شدید که یکی از عیب های این روش کد نویسی طولانی اونه تازه اگه بخوایم یه متغییر عددی رو به رشته ی سوم اضافه کنیم باید نوع داده ی اون رو تغییر بدیم که باز کد طولانی تر میشه و خواناییش کاهش پیدا میکنه توی این مثال به وسیله ی placeholder این مشکل رو رفع میکنیم البته کار برد placeholder ها خیلیه مثلا در زمان کار با پایگاه داده توی سی شارپ و ... خوب به کد زیر توجه کنید ببینید چه تفاوتی میکنه:

String f="Meysam";
String s="Valiolahi";
String Merg=string.Format("{0}  ({1})",f,s);

همانطور که متوجه شدید {0} نقش placeholder رو بازی میکنه که عدد داخل تعداد آرگمان هاشه که از 0 شروع میشه برای اینکه بهتر متوجه بشید یه textbox و یک button به فرمی اضافه کنید و کد زیر رو توی رویداد کلیک دکمه اضافه کنید . متنی رو توی textbox بنویسید و اونو اجرا کنید:

string txt1="Hello";
string txt2=textBox1.Text;
string x=string.Format("{0}  ({1})",txt1,txt2);
MessageBox.Show(x);

منبع مطلب: combook.mihanblog.com

منابع انگلیسی:Composite FormattingWhat does {0} mean when found in a string in c#? - Stack Overflow

0

یه مثال دیگه:

string inf = "form title: {0} Form height: {1} form width: {2}";
            inf=string.Format(inf, this.Text, this.Height, this.Width);
            MessageBox.Show(inf);

:57:

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید