الشبكة العربية لمطوري الألعاب

مبتدئ  المانشافت مشاركة 1

سلام عليكم!!

انا جديد في تعلم لغه برمجه الرائعه سى شارب و لكن اواجه مشكله فى فهم الطريقه المسماه tostring - متى تستعمل هذه الطريقه و ما الفائده منها؟؟!؟

يعني مثلا int i = 4 - متى يجب طباعته هكذا
Console.WriteLine(i);
و متى يجب طباعته هكذا
Console.WriteLine(i.ToString());

؟؟؟

الرجاء ثم الرجاء مساعدتى لأنى اتعبت من التفكير ههههههههه و لكم الشكر احباءى!!!

خبير  أحمد عزالدين مشاركة 2

السلام عليكم

اخي الكريم الناتج في الحالتين واحد
حيث في الطريقة الاولي عندما تقوم بتمرير المتغير مباشرة الي الدالة WriteLine فان الدالة تمت كتابتها بعدة طرق بحيث انك اذا قمت بتمرير متغير من نوع عدد صحيح مثلا فان الدالة ستقوم بطباعته لان هناك نسخة من هذه الدالة يمكنها طباعة الاعداد الصحيحة

بينما انت في الحالة الثانية قمت بتحويل قيمة المتغير الرقمي الي قمية نصية وقمت بتمريرها الي الدالة والتي ايضا تم كتابة نسخة منها لتقوم بطباعة القيم النصية الممررة اليها
وهذا الاسلوب معروف في البرمجة كائنية التوجه ويطلق عليه : اعادة تعريف الدالة overloading

ملاحظة: اذا قمت بكتابة كلاس خاصة بك ولتكن Person وتحتوي علي اسم الشخص وعمره مثلا كالاتي


class Person
{
    public string name;
    public int age;

    public override string ToString()
    {
        return "Name: " + name + ", age: " + age.ToString();
    }
}

تلاحظ هنا اننا قمنا باعادة تعريف الدالة ToString للكلاس الخاصة بنا بحيث اذا تم استدعاء هذه الدالة ستقوم بارجاع قيمة نصية حددنا نحن صيغتها بما يتناسب مع ما نحتاجه

الان يمكننا استخدام هذه الكلاس وجرب بنفسك انك اذا قمت بتمرير متغير من الكلاس Person للدالة WriteLine
فانها ستقوم بالبحث عن الدالة ToString وستقوم باستخدامها تلقائيا

ارجو ان تكون اتضحت بعض الامور
وبالتوفيق ان شاء الله

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

خبير  أحمد عبد الغني مشاركة 3

صحيح. فالدالة ToString معرفة اساسا مع كلاس الـ object الرئيسي والذي تنحدر منه كل كلاسات مكتبة الدوت نت. يعني ممكن تكتب دالة تاخذ أي نوع وتحولها لجملة نصية:



void PrintObject(object obj)
{
  string objName = "Object is: " + obj.ToString();
  Console.WriteLine(objName);
}
 
وهكذا 😒

اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم