دانلود نرم افزار - آموزش سی شارپ

اوورلودینگ کردن در سی شارپ

شرایطی را در نظر بگیرید که شما می خواهید از یک نام مشابه برای چندین منظور استفاده کنید . مثلا از کلمه «محاسبه مساحت»  برای محاسبه مساحت مربع ، مستطیل ، دایره و مثلث و غیره استفاده کنید . برای رسیدن به این هدف روشی در سی شارپ وجود دارد به نام اوورلودینگ کردن . این کار به این صورت انجام می گیرد که ما درون یک کلاس چندین متد همنام درست می کنیم این متدها باید از نظر امضا با هم متفاوت باشند تا کمپایلر اجازه چنین کاری را بدهد و دچار خطا نشود . حالا منظور از امضا یا همان سیگنچر چیست ؟ امضای هر متد چیزی نیست بجز تعداد ، نوع و ترتیب آرگومان های آن متد .یعنی متدهایی که از نظر تعداد آرگومان متفاوتند امضای متفاوتی دارند متدهایی که از نظر نوع آرگومان متفاوتند نیز از نظر امضا با هم متفاوتند و نهایتا متدهایی که از نظر ترتیب نیز با هم متفاوت باشند از نظر امضا با هم متفاوت می باشند . کافی است تا یکی از این سه شرط برقرار باشد . دقت داشته باشید که امضای متد ربطی به نوع برگشتی آن ندارد و اگر تنها تفاوت بین دو متد در نوع برگشتی آنها باشد ، باعث تفاوت امضای آنها نمی باشد . در کد زیر کلاسی می بینید که در آن عمل اوورلودینگ انجام شده .

class ShapeCalculator

{

    // مساحت مستطیل

    public double CalculateArea(double width, double height)

    {

        return width * height;

    }

    // مساحت دایره

    public double CalculateArea(double radius)

    {

        return Math.PI * radius * radius;

    }

    // مساحت مثلث

    public double CalculateArea(double baseLength, double height, bool isTriangle)

    {

        if (isTriangle)

            return 0.5 * baseLength * height;

        return 0; // برای تمایز از حالت‌های دیگر

    }

}


نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد