PDA

View Full Version : چاپ Double در Messagebox



SYSMAN
سه شنبه 24 مرداد 1385, 16:33 عصر
چرا از کد زیر در #C خطا گرفته می شه ؟


double dblArea;
dblArea = 100;
MessageBox.Show(dblArea, "Area");
/*Error 1 The best overloaded method match for 'System.Windows.Forms.MessageBox.Show(string, string)' has some invalid arguments */
// Error 2 Argument '1': cannot convert from 'double' to 'string'


و این کد درسته!!!


double dblArea;
dblArea = 100;
MessageBox.Show("" + dblArea, "Area");


در صورتی که توی VB کد اول بدون هیچ مشکلی کامپایل می شه.

ghafoori
سه شنبه 24 مرداد 1385, 17:31 عصر
در کد بالا به dblarea این دستور را اضافه کنید ToString() که به این صورت دربیاد



double dblArea;
dblArea = 100;
MessageBox.Show(dblArea.ToString(), "Area");

اَرژنگ
سه شنبه 24 مرداد 1385, 19:10 عصر
اگر Option Strict
را ست کنید، در وی بی هم کمپایل نمیشه
"type safety is demanded by Option Strict"

SYSMAN
چهارشنبه 25 مرداد 1385, 01:22 صبح
جناب ghafoori اون کار هم تست شده جواب نمی ده

SYSMAN
چهارشنبه 25 مرداد 1385, 01:51 صبح
اگر Option Strict
را ست کنید، در وی بی هم کمپایل نمیشه
"type safety is demanded by Option Strict"

فرمایش شما درسته ولی اونجا لااقل با ToString. مشکل حل می شه.

اَرژنگ
چهارشنبه 25 مرداد 1385, 05:05 صبح
فرمایش شما درسته ولی اونجا لااقل با ToString. مشکل حل می شه. کجا لااقل با ToString. مشکل حل میشه؟ در سی‌شارپ هم کد آقایه غفوری کاملاً درست کار میکنه. پس مشکل چیه؟

SYSMAN
چهارشنبه 25 مرداد 1385, 16:56 عصر
توی VB.NET وقتی از ToString. استفاده می کنم اگه Option Strict فعال باشه درست کار می کنه (با فعال بودن Option Strict و عدم استفاده از ToString. کامپایلر خطا میده).
ولی توی #C هر کاری می کنم نمی تونم مقدار متغیر غیر رشته ای را توی Messagebox چاپ کنم (حتی با استفاده از ToString.) مگر به همون صورتی که نوشتم.!!!
حالا یا مشکل از VS من هست یا مدل #C همینطوری هست و یا راه حلی که هنوز پیدا نکردم.

SYSMAN
یک شنبه 29 مرداد 1385, 11:32 صبح
عجب، این #C که این همه ازش تعریف می کنند چقدر خنگ تشریف دارند که نمی کنه دو تا پرانتز برای متد هاش بزاره که آدم این همه گیج نخوره (باز گلی به جمال VB).
علت این که خطا می گرفت به خاطر عدم قرار گرفتن پرانتز برای ToString بود!!!!

Milad Mohseny
دوشنبه 30 مرداد 1385, 18:19 عصر
عجب، این #C که این همه ازش تعریف می کنند چقدر خنگ تشریف دارند که نمی کنه دو تا پرانتز برای متد هاش بزاره که آدم این همه گیج نخوره (باز گلی به جمال VB).

قضاوت از این عجیب تر نمیشه.
شما برو توی ++C ساده ترین تابع اون مثل ()clrscr رو فراخوانی کن اگر پرانتز قرار ندهی از clrscr رد میشه و اون رو اجرا نمیکنه.
تمام زبان هایی که پایه c دارند همین طوره.

SYSMAN
سه شنبه 31 مرداد 1385, 21:19 عصر
به اون قسمت آخر توجه نکردید.
من VB را کار کردم، #C را هم کار کردم ببینم چی داره که این همه سروصدا کرد و ازش تعریف می کنند شاید نسبت به ++C خیلی راحتر باشه، ولی توی کدنویسی و تولید بخشهای مختلف کد خیلی از VB عقب تر هست. تا به حال که تفاوت خاصی نسبت به VB توی #C ندیدم.(به جز syntax) اگرم باشه خوشحال می شم دوستان بگن. مگر اینکه کسی خیلی علاقه داشته باشه ++C را کار کنه که مستقیم بره همون را یاد بگیره.

mahdi_negahi
سه شنبه 31 مرداد 1385, 21:28 عصر
:قهقهه: صحبتهای جالبی در این تاپیک شده

SYSMAN
سه شنبه 31 مرداد 1385, 23:25 عصر
:قهقهه: صحبتهای جالبی در این تاپیک شده

از جالب بودن هاش بگید شاید ما هم خندیدیم