виртуальные методы в C#
От: Arsen.Shnurkov  
Дата: 22.02.17 10:12
Оценка:
У меня от этого мозг ломается. В моей картине мира виртуальной функция Test должна быть только в классе M.

using System;

class program
{
    static void Main(string[] args)
    {
        int sum = 0;
        sum += new Base1().Test();
        sum += new Base2().Test();
        Console.WriteLine(sum);
    }
}

class Base1
{
    public int Test()
    {
        var m = typeof(Base1).GetMethod(nameof(Test));
        return m.IsVirtual ? 1 : 0;
    }
}

class Base2
{
    public int Test()
    {
        var m = typeof(Base2).GetMethod(nameof(Test));
        return m.IsVirtual ? 1 : 0;
    }
}

interface I { int Test(); }
class M : Base2, I { }

Что надо сделать, чтобы на экран был выведен 0 ? (Не меняя исходного кода)
Отредактировано 04.03.2017 21:59 VladD2 . Предыдущая версия . Еще …
Отредактировано 22.02.2017 13:03 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 22.02.2017 10:30 Arsen.Shnurkov . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.