مقایسه دو خط کد سی شارپ برای استفاده از String ها : انتخاب بهترین
سلام دوستان این دو خط کد چه فرقی با هم دارند؟
label3.Text += Factorial(int.Parse(textBox1.Text));
و
label3.Text = Factorial(int.Parse(textBox1.Text)).ToString();
چرا در حالت اول نیاز به متد ToString() و تبدیل کردن به String نیست؟
2 پاسخ
وقتی مقدار غیر رشته ای رو میخواین وارد متغیر از نوع رشته ای بکنید توابع ویژوال استدیو به صورت پیش فرض این کار رو انجام میدن و نیازی به استفاده از تابع tostring نیست. یعنی دومی هم ضرورتی نداره tostring داشته باشه.
با سلام به شما Itpro ای عزیز.
در خط اول به خاطر این که خصوصیت Text در labelیک متغیر string است می توان آن را با هر نوع دیگری با علامت + قرار داد. و نتیجه این کار این است که این دومقدار به هم می چسبد و یک رشته .string تولید می شود. که می توان آن را به راحتی در داخل خصوصیت Text قرار داد. خط اول در اصل به شکل زیر بوده است:
label3.Text =label3.Text+ Factorial(int.Parse(textBox1.Text));
حال در خط دوم به خاطر این که مقدار بازگشتی تابع factorial عددی است پس باید اول آن را به رشته تبدیل کنیم و سپس در داخل رشته Text بریزیم برای همی از متد ToString استفاده می کنیم.