الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Class Questions

بدأه عمرو عماد في 15 أكتوبر 2012 · 3 رد · 383 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كما ترون اخواني الأعزاء في الفترة الحالية أدرس .NET وأحاول جاهد أن أقطع جزء كبير رغم إنشغالات الحياة

ولكني أستعين بالله ثم بكم في الحصول علي المعلومات والإجابة علي الأسئلة التي تقع إمامي والتي لا أجد لها حل

لهذا قمت بعمل هذا الموضوع وهو سوف يضم كل الأسئلة الخاصة بي عن الكلاسس فأرجوا أن يتسع صدركم لي وان تتقبلوا أسئلتي وإستفساراتي

السؤال الأول :

private void button1_Click(object sender, EventArgs e)
        {
            AMRCircle   C;
            C = new AMRCircle();
            C.Reduis = 10;

            MessageBox.Show( C.Area().ToString() );


        }
    }

    class AMRCircle
    {
        public double Reduis;

        public double Area()
        {

            return (Convert.ToDouble(22 / 7 * Reduis * Reduis));
        }
    }

لماذا عندما أقوم بإظهار رسالة تحتوي علي المساحة تكون int وليس double كما قمت بتعريفها داخل الكلاس

1- فكيف أقوم بحل هذه المشكلة لترجع الدالة Double بدلا من Int

2- لماذا لا تخرج دالة MessageBox القيمة دون تحويلها إلا String

#2
اقتباس
1- فكيف أقوم بحل هذه المشكلة لترجع الدالة Double بدلا من Int

MessageBox.Show( C.Area().ToString("#.###") );

اقتباس
- لماذا لا تخرج دالة MessageBox القيمة دون تحويلها إلا String

ببساطة السي شارب لاتسمح ضمنيا بالتحويل من نوع متغير الى آخر .

فلايوجد overload ل MessageBox يسمح بتمرير double .

على عكس الفيجوال بيسك حيث يسمح بالتحويل الضمني افتراضيا .

#3

جزاكم الله خيرا علي سرعة ردك أخري الكريم

اقتباس
ببساطة السي شارب لاتسمح ضمنيا بالتحويل من نوع متغير الى آخر .

هل هذا يعد نقطة تحسب للفيجوال بيسك ؟ ونقص في السي شارب؟؟

عندما قمت بإستخدام الكونسل لعرض المتغير قام بهذه الطريقة

    AMRCircle C;
            C = new AMRCircle();
            C.Reduis = 10;

            Console.WriteLine(C.Area());
            Console.Read();

قام أيضا بإخراج الناتج من النوع Interger أيضا .. أعتقد أنا السبب أني أستخدمت أرقام صحيحة 22/7 ولكني لا أعرف كيف تجنب هذا الخطأ

تم تعديل هذه المشاركة بواسطة عمرو عماد في 15 أكتوبر 2012 في 10:58

#4
اقتباس
هل هذا يعد نقطة تحسب للفيجوال بيسك ؟ ونقص في السي شارب؟؟

هذه احدى الاسباب ان كثير من الناس تفضل الفيجوال بيسك خاصة المبتدئين او لمن ليس لديهم خلفية برمجية .

وبالنسبة ل Console.WriteLine لو دققت بها ستجد ان هناك عدة اشكال منها Overloads بحيث تقبل integer و double واشياء اخرى كثيرة

مواضيع مشابهة