View Full Version : تابع مشتق شده داریم مثل کلاس ها؟!!!!
fool66
شنبه 15 فروردین 1394, 01:43 صبح
سلام من چنین کدی دیدم که مثل کلاس مشتق شده هست میشه بگین چکار میکنه !!!!
public Name_Exceptions()
: base("Message")
}
{
am_al_59
شنبه 15 فروردین 1394, 01:50 صبح
توی C# ارث بری فقط خاصیت کلاس ها است
متدها میشه فقط اسمشون از یک کلاس به کلاس دیگه منتقل بشه و شما در دو کلاس مجزا که از یک کلاس Abstract ارث بردن یک متد با یک نام داشته باشی که override شده و پیاده سازی مجزا داشته باشی
همینطور متدهارو میشه Overload کرد و با پارامترهای مختلف که نوع های متفاوتی دارند صداشون کرد
fool66
شنبه 15 فروردین 1394, 01:55 صبح
خب منم میدونستم ولی توی کد چرا از: استفاده کرده !!!!!
public Name_Exceptions()
: base("Message")
}
{
am_al_59
شنبه 15 فروردین 1394, 02:00 صبح
این یک جور override هست
یعنی تابع base رو با پارامتر "Message" فراخوانی کرده
مثلاً شما یک کلاس رو داری رونویسی میکنی و اون کلاس قابلیت ارث بری رو بهت داده
این کلاس یک متد داره با نام Name_Exceptions ، با کدی که نوشتی اول کدهای متد اولیه که در کلاس پایه هست با پارامتر "Message" اجرا میشه بعد کد شما
fool66
شنبه 15 فروردین 1394, 02:10 صبح
خب base که تابع نیست که ما پارامتر بهش ارسال کنیم base اشاره به کلاس والد داره که ما ازش مشتق کردیم
am_al_59
شنبه 15 فروردین 1394, 02: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 اجرا بشه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.