نمایش نتایج 1 تا 2 از 2

نام تاپیک: override کردن متد ToString در یک کلاس

  1. #1

    override کردن متد ToString در یک کلاس

    کلاس زیر رو در نظر بگیرین

    class classTest
    {
    public classTest():base()
    {}

    public byte foool(byte a)
    {
    return ++a;
    }

    public override string ToString()
    {
    return "result is:" + base.ToString() ;

    }

    }
    میخوام هر وقت متد ToString فراخوانی شد عبارت result is رو هم به رشته اضافه کنه یعنی هروقت تابع fool(2) فراخوانی شد، رشته result is 3 برگشت داده بشه

    classTest cls = new classTest();

    private void Form1_Load(object sender, EventArgs e)
    {
    Console.WriteLine(cls.foool(2).ToString());
    }
    }
    چرا این اتفاق نمی افته ؟

  2. #2

    نقل قول: override کردن متد ToString در یک کلاس

    چون شما داری متد ToString کلاس byte رو فراخوانی می کنی و اون متد هم به درستی معادل رشته ای 3 رو بر میگردونه! فراخوانی (2)foool یک شی از نوع byte رو برگشت میده نه شی ای از نوع کلاسی که ساختی.
    اگر به صورت ذیل بنویسی نسخه ی override شده فراخوانی میشه:

    Console.WriteLine(cls.ToString());


    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •