اشتراک‌ها
اطلاعات خود در مورد ارث‌بری را محک بزنید
امشب به تاریخ ۲۰ مهر، سؤالی در مورد ارث‌بری، interface و abstract class در سایت محبوب همگی ما، StackOverFlow منتشر شد. سؤال حاکی از رفتار عجیب قطعه کد زیر در نسخه ۸ سی‌شارپ است. تا به اینجا برای سؤال مذکور، یک پاسخ با اعتماد به نقس بالایی ارائه شد و پس از مدت اندکی حذف گردیده است.

interface I {
    string M1() => "I.M1";
    string M2() => "I.M2";
}

abstract class A : I {}

class C : A {
    public string M1() => "C.M1";
    public virtual string M2() => "C.M2";
}

class Program {
    static void Main() {
        I obj = new C();
        System.Console.WriteLine(obj.M1());
        System.Console.WriteLine(obj.M2());
    }
}
نظر شما در مورد نحوه عملکرد چیست؟ در صورت استفاده از کلمه کلیدی‌های new و override چه خروجی‌هایی خواهیم گرفت.
اگر برای شما هم این مبحث جذاب شده است، به سؤال اصلی  مراجعه کنید.
اطلاعات خود در مورد ارث‌بری را محک بزنید
اشتراک‌ها
خلاصه‌ی C# 8.0 در دو صفحه
C# 8 Cheat Sheet, Default Interface Methods, Pattern Matching, Indices and Ranges, Nullable Reference Types, Asynchronous Streams, Caller Expression Attribute ,Static Local Functions, Default in Deconstruction., Alternative Interpolated Verbatim Strings, Using Declarations, Relax Ordering of ref and partial Modifiers, Disposable ref structs, Gen…
خلاصه‌ی C# 8.0 در دو صفحه