نمایش نتایج 1 تا 2 از 2

نام تاپیک: Cast rules

  1. #1

    Cast rules

    خط ** تو Main داره Cast می کنه،خوب دقیقا داره چه می کنه؟؟؟

    // Draw image to a Form.
    public interface IDrawToForm
    {
    void Draw();
    }
    // Draw to buffer in memory.
    public interface IDrawToMemory
    {
    void Draw();
    }
    // Render to the printer.
    public interface IDrawToPrinter
    {
    void Draw();
    }
    ------------------
    class Octagon : IDrawToForm, IDrawToMemory, IDrawToPrinter
    {
    // Explicitly bind Draw() implementations
    // to a given interface.
    void IDrawToForm.Draw()
    {
    Console.WriteLine("Drawing to form...");
    }
    void IDrawToMemory.Draw()
    {
    Console.WriteLine("Drawing to memory...");
    }
    void IDrawToPrinter.Draw()
    {
    Console.WriteLine("Drawing to a printer...");
    }
    }
    -----------------
    static void Main(string[] args)
    {
    Console.WriteLine("***** Fun with Interface Name Clashes *****\n");
    Octagon oct = new Octagon();
    // We now must use casting to access the Draw()
    // members.
    IDrawToForm itfForm = (IDrawToForm)oct;**
    itfForm.Draw();
    // Shorthand notation if you don't need
    // the interface variable for later use.
    ((IDrawToPrinter)oct).Draw();
    // Could also use the "as" keyword.
    if(oct is IDrawToMemory)
    ((IDrawToMemory)oct).Draw();
    Console.ReadLine();
    }

  2. #2

    نقل قول: Cast rules

    کلاس octagon داره چند تا Interface را پیاده سازی میکنه، که دارای متدی به نام Draw می باشند، که دارای امضای مشابهی نیز هستند.
    در این موارد :
    1) بایستی Interface ها به صورت صریح ( Explicite ) پیاده سازی شوند، ( نام اینترفیس . نام متد)
    2) هنگام استفاده از متد های اینتر فیس ها، توسط کلاسی که این اینترفیس ها را پیاده سازی کرده، باید کلاس را به اینترفیسی که متد مورد نظر ما در آن می باشد cast کنیم تا کمپایلر متوجه شود که ما از کدام یک از 3 متد Draw که هر یک مربوط به اینترفیس خاصی است می خوایم استفاده کنیم.

    لطفا از این به بعد کمی سایز فونت نوشتتون را بزگتر کنید
    موفق باشید

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •