این کد چند خطی به چه معنیه..
در کد زیر بعد از متد ها از ":" استفاده شده و بعدش از ()base استفاده شده. یعنی چی ؟ متد ها مثل ارث بری کلاس ها عمل کردن. این ":" برای متد ها چه معنی میده؟ من فقط با این ":" برای متد مشکل دارم. معنیش رو نمیفهمم
public class BaseException : System.Exception, ISerializable
{
public BaseException()
: base()
{
// Add implementation (if required)
}
public BaseException(string message)
: base(message)
{
// Add implementation (if required)
}
}
نقل قول: این کد چند خطی به چه معنیه..
سلام
یعنی اینکه قبل از اجرای دستورات درون Constructor کلاس فرزند اول Constructor کلاس پدر باید اجرا گردد و : base(message) متد OverLoad شده Constructor پدر است
نقل قول: این کد چند خطی به چه معنیه..
با تشکر از شما.
مثالی راجع به اینکه اینکار در کجا به درد میخوره میشه بزنید.
چرا باید اول constructor کلاس پدر اجرا بشه؟
نقل قول: این کد چند خطی به چه معنیه..
سلام
فرض کنید یک کلاس ساده برای محاسبه سطح یک مستطیل داریم :
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;
}
}
نقل قول: این کد چند خطی به چه معنیه..
ممنون.
حالا برای نمونه گیری از abc باید چه طوری عمل کنم ؟
یعنی اول باید سازنده کلاس ab رو مقدار دهی کنیم؟
ab AB = new ab(1,4);
من میخوام یه new از abc بگیرم. چی کار باید بکنم؟
اسم این کار رو هم بهم بگین میرم خودم دنبالش. به این کار که "قبل از اجرای دستورات درون Constructor کلاس فرزند اول Constructor کلاس پدر باید اجرا گردد" چی میگن؟
همینم بدونم میرم سراغش
نقل قول: این کد چند خطی به چه معنیه..
سلام
اینطوری :
abc o = new abc(1, 2, 3);
o.V();
نقل قول: این کد چند خطی به چه معنیه..
به این متد یا سازنده ای از کلاس فرزند که سازنده کلاس پدر رو مقدار دهی میکنه 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()