PDA

View Full Version : تابع مشتق شده داریم مثل کلاس ها؟!!!!



fool66
شنبه 15 فروردین 1394, 00:43 صبح
سلام من چنین کدی دیدم که مثل کلاس مشتق شده هست میشه بگین چکار میکنه !!!!






public Name_Exceptions()
: base("Message")
}
{

am_al_59
شنبه 15 فروردین 1394, 00:50 صبح
توی C#‎‎‎ ارث بری فقط خاصیت کلاس ها است
متدها میشه فقط اسمشون از یک کلاس به کلاس دیگه منتقل بشه و شما در دو کلاس مجزا که از یک کلاس Abstract ارث بردن یک متد با یک نام داشته باشی که override شده و پیاده سازی مجزا داشته باشی

همینطور متدهارو میشه Overload کرد و با پارامترهای مختلف که نوع های متفاوتی دارند صداشون کرد

fool66
شنبه 15 فروردین 1394, 00:55 صبح
خب منم میدونستم ولی توی کد چرا از: استفاده کرده !!!!!





public Name_Exceptions()
: base("Message")
}
{

am_al_59
شنبه 15 فروردین 1394, 01:00 صبح
این یک جور override هست
یعنی تابع base رو با پارامتر "Message" فراخوانی کرده

مثلاً شما یک کلاس رو داری رونویسی میکنی و اون کلاس قابلیت ارث بری رو بهت داده
این کلاس یک متد داره با نام Name_Exceptions ، با کدی که نوشتی اول کدهای متد اولیه که در کلاس پایه هست با پارامتر "Message" اجرا میشه بعد کد شما

fool66
شنبه 15 فروردین 1394, 01:10 صبح
خب base که تابع نیست که ما پارامتر بهش ارسال کنیم base اشاره به کلاس والد داره که ما ازش مشتق کردیم

am_al_59
شنبه 15 فروردین 1394, 01:18 صبح
base کلمه کلیدیه شما در دوحالت توی ارث بری میتونی استفاده کنی
این یکیش


public class aa:Button
{
public override string ToString()
{
return base.ToString();
}
}



که کد متد مبدا در کلاس اولیه رو اجرا میکنه
حالت دیگش هم در جلوی نام متد در کلاسی که ارث برده استفاده میشه


class a
{
public a()
{
}
}


class b:a
{
public void newMethod():base()
{
}
}


توی حالت دوم باعث میشه ابتدا سازنده کلاس a اجرا بشه