PDA

View Full Version : مبتدی: ارور در هنگام مشتق کردن



parsa lotfy
جمعه 30 بهمن 1394, 04:45 صبح
با سلام ...

من در حال یادگیری توارت( Inheritance ) هستم...:لبخند:

در یکی از برنامه هایی که دارم مینویسم چنین مشکلی به وجود میاید :
کلاس پایه ( Base ) یک سازنده ( Constructor ) دارد...اما وقتی کلاسی را مشتق میکنم به سازنده ارور میدهد...:متفکر:
میخواستم بپرسم چرا این مشکل به وجوود میاید و راه حل اون چیست ؟:متفکر:
با تشکر :قلب:

کلاس Base :

using System;

public class People
{
/*

f = First Name
l = Last Name
i = ID
a = Age
s = Sex

*/
private string f, l, i;
private int a;
private bool s;

public People(string firstname, string lastname, string id, int age, bool sex)
{
f = firstname;
l = lastname;
i = id;
a = age;
s = sex;
}

}


کلاس Derived :

using System;

public class Person:People
{

}

کلاس Program :

using System;

public class Program
{
public static void Main(string[] agrs)
{

}
}

در اخر هم عکس Error :

139166

اگ ممکنه بهم توضیح بدید :قلب::قلب::قلب:
با تشکر

محمد آشتیانی
جمعه 30 بهمن 1394, 05:07 صبح
سلام
شما باید در متد سازنده کلاس مشتق شده ، آرگومان های متد سازنده کلاس پایه رو بهش پاس بدید

public class Person : People
{
public Person(string firstname, string lastname, string id, int age, bool sex)
: base(firstname, lastname, id, age, sex)
{


}
}


موقع ساختن نمونه از کلاس مشتق شده هم طبیعتا باید پارامترها رو مقدار دهی کنید.


موفق باشید.

parsa lotfy
جمعه 30 بهمن 1394, 05:17 صبح
خب چرا باید اینکار. بکنم ؟!
دلیلش چیه ؟
مشه توضیح بدین...

محمد آشتیانی
جمعه 30 بهمن 1394, 05:48 صبح
به طور کلی وقتی یک متد تعدادی پارامتر داره شما چجوری اون متد رو فراخوانی می کنید؟ مگه غیر از اینه که باید پارامترهاش رو مقدار دهی کنید؟اینجا هم همون حالته ، وقتی شما برای متد سازنده یک کلاس پارامتر مشخص می کنید ، باید اونها رو در زمان ساخت یک نمونه از کلاس مشخص کنید ، حالا وقتی از اون کلاس ارث بری می کنید به این صورت میشه که در پست قبل عرض کردم.