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

نام تاپیک: این کد چند خطی به چه معنیه..

  1. #1
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    این کد چند خطی به چه معنیه..

    در کد زیر بعد از متد ها از ":" استفاده شده و بعدش از ()base استفاده شده. یعنی چی ؟ متد ها مثل ارث بری کلاس ها عمل کردن. این ":" برای متد ها چه معنی میده؟ من فقط با این ":" برای متد مشکل دارم. معنیش رو نمیفهمم

    public class BaseException : System.Exception, ISerializable
    {
    public BaseException()
    : base()
    {
    // Add implementation (if required)
    }

    public BaseException(string message)
    : base(message)
    {
    // Add implementation (if required)
    }
    }

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: این کد چند خطی به چه معنیه..

    سلام
    یعنی اینکه قبل از اجرای دستورات درون Constructor کلاس فرزند اول Constructor کلاس پدر باید اجرا گردد و : base(message) متد OverLoad شده Constructor پدر است

  3. #3
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: این کد چند خطی به چه معنیه..

    با تشکر از شما.
    مثالی راجع به اینکه اینکار در کجا به درد میخوره میشه بزنید.
    چرا باید اول constructor کلاس پدر اجرا بشه؟

  4. #4
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: این کد چند خطی به چه معنیه..

    سلام
    فرض کنید یک کلاس ساده برای محاسبه سطح یک مستطیل داریم :

    public class ab
    {
    protected int a, b;
    public ab(int a, int b)
    {
    this.a = a;
    this.b = b;
    }
    public int S()
    {
    return this.a * this.b;
    }
    }

    حال می خواهیم یک کلاس وراثتی برای محاسبه حجم مکعب از روی این کلاس ایجاد کنیم دیگر نیازی به مولفه های a,b نیست :

    public class abc : ab
    {
    private int c;
    public abc(int a, int b, int c)
    : base(a, b)
    {
    this.c = c;
    }
    public int V()
    {
    return base.a * base.b * this.c;
    }
    }

  5. #5
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: این کد چند خطی به چه معنیه..

    ممنون.
    حالا برای نمونه گیری از abc باید چه طوری عمل کنم ؟
    یعنی اول باید سازنده کلاس ab رو مقدار دهی کنیم؟

    ab AB = new ab(1,4);

    من میخوام یه new از abc بگیرم. چی کار باید بکنم؟
    اسم این کار رو هم بهم بگین میرم خودم دنبالش. به این کار که "قبل از اجرای دستورات درون Constructor کلاس فرزند اول Constructor کلاس پدر باید اجرا گردد" چی میگن؟
    همینم بدونم میرم سراغش

  6. #6
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: این کد چند خطی به چه معنیه..

    سلام
    اینطوری :

    abc o = new abc(1, 2, 3);
    o.V();

  7. #7
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: این کد چند خطی به چه معنیه..

    به این متد یا سازنده ای از کلاس فرزند که سازنده کلاس پدر رو مقدار دهی میکنه base constructor initializer in derived type

    این مقدار دهی به سازنده کلاس پدر وقتی به کار میره که نیاز به non-default constructor باشه.
    این یه نمونه علاوه بر مثال بالا که ASKaffash عزیز نشون دادن


    class baseConstructor
    {
    }
    public class A // This is the base class.
    {
    public A(int value)
    {
    // Executes some code in the constructor.
    Console.WriteLine("Base constructor A()");
    }
    }

    public class B : A // This class derives from the previous class.
    {
    public B(int value)
    : base(value)
    {
    // The base constructor is called first.
    // ... Then this code is executed.
    Console.WriteLine("Derived constructor B()");
    Console.WriteLine();
    }
    }


    مقدار دهی :

    class Program
    {
    static void Main()
    {
    // Create a new instance of class A, which is the base class.
    // ... Then create an instance of B, which executes the base constructor.
    A a = new A(0);
    B b = new B(1);
    }
    }




    خروجی :

    Base constructor A()
    Base constructor A()
    Derived constructor B()

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

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