PDA

View Full Version : مقایسه دو کد راهنمائی در مورد tostring()



hesabres
پنج شنبه 06 مهر 1391, 10:41 صبح
سلام بر همگی

من به تازگی برنامه نویسی به این زبان رو شروع کردم لذا اگر سوالاتم سطح پائین هست پیشاپیش معذرت

من هنگام یادگیری switch به دو مورد برخورد کردم و برام سوال شده است

1 - در ارتباط با tostring () برای من توضیح بدین که در چه جاهائی استفاده میشه و اصولا کارش چیه ؟

2 - من دو کد دارم که در یکی tostring استفاده کردم و در دیگری نه

private void button1_Click_1(object sender, EventArgs e)
{
switch (txt1.Text)
{
case "":
lbl1.Text = "هيچ عبارتی وارد نشده است";
break;
case "milad":
lbl1.Text = "نام کاربری شما تائيد شد ، منتظر بمانيد....";
break;
case "میلاد":
lbl1.Text = "نام کاربری شما تائيد شد ";
break;
default:
lbl1.Text = "نام کاربری شما تائيد نشد ";
break;
}

}

این کد همینطور که میبینید من در خط سوئیچ از to string استفاده نکردم ولی خطائی هم نگرفت

اما در این کد

private void button1_Click(object sender, EventArgs e)
{
switch (com1.SelectedItem.ToString())
{
case "red":
btn1.Text = "red";
break;
case "blue":
btn1.Text = "blue";
break;
default:
btn1.Text = "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
break;
}
}

اگر در کد بالائی من tostring رو استفاده نکنم برنامه خطا میگیره من در کد اول تکست باکس دارم و در کد دوم کمبو باکس

متشکرم

morteza271
پنج شنبه 06 مهر 1391, 10:49 صبح
در کد اول مقدار txt1.Text خودش از نوع string هست و در داخل switch هم دارین با مقدار string مقایسه می کنید پس درسته و مشکلی نداره!

در کد دوم com1.SelectedItem یک مقدار از نوع آیتم هست ولی شما دارین داخل switch با مقدارهای string مقایسه می کنید و بنابراین خطاست و باید آیتم رو به string تبدیل کنید.

موفق باشید.

hesabres
پنج شنبه 06 مهر 1391, 11:34 صبح
سپاس از شمااااا

Farshid007
پنج شنبه 06 مهر 1391, 11:39 صبح
در کد اول مقدار txt1.Text خودش از نوع string هست و در داخل switch هم دارین با مقدار string مقایسه می کنید پس درسته و مشکلی نداره!

در کد دوم com1.SelectedItem یک مقدار از نوع آیتم هست ولی شما دارین داخل switch با مقدارهای string مقایسه می کنید و بنابراین خطاست و باید آیتم رو به string تبدیل کنید.

موفق باشید.
اون از نوع Object هست نه Item
بیچاره رو از اول راه گمراه نکنید

Farshid007
پنج شنبه 06 مهر 1391, 11:40 صبح
وقتی که داری کد نویسی می کنی اگه چند ثانیه رو شی تو لیست ایتم رو نگه داری توضیحاتی میاد که اولش گفته از چه نوعی هست

harani
پنج شنبه 06 مهر 1391, 11:48 صبح
String یا رشته همان متنهایی هستند که تایپ شدند حالا یا از طریق کدنویسی یا کاربر آنها را وارد کرده . هر چیزی که داخل خاصیت Text کنترلهای TextBox , Label و ... نوشته یا کدنویسی بشه یک string محسوب میشه . اگر بخواهید یک string تعریف کنید باید آن را بین " " بگذارید .چند نمونه String

String MyString = "This is a String";//a

this.Text = "this yani formi ke dar an hastid";//b

textBox1.Text = "Text Yani Matn Dakhele Controle TextBox";//c


همانطور که میبینید .تمامی رشته ها بین " " تعریف شدن . حال زمانیکه شما میخواهید یک عدد یا یک آیتم بخصوصی را به عنوان رشته تعریف کنید باید از متد ToString استفاده کنید . مثل حالت دومی . یا مثال شکل زیر

int a = 1000;//a
label.Text = a.Tostring();//v


امیدوارم راهنماییم براتون مؤثر بوده باشه .

morteza271
پنج شنبه 06 مهر 1391, 11:50 صبح
اون از نوع Object هست نه Item
بیچاره رو از اول راه گمراه نکنید

منظور من از آیتم همون ابجکتی از نوع آیتم کامبوباکس بود، وگرنه آیتم که اصلا نوع نیست!!!
به هر حال ممنون که گفتین.