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

#C

توسط reza در 7 سال پیش
0 51.9k 1 7 سال پیش
reza online
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 Formatting
What 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:

خوش آمدید

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