Сообщение виртуальные методы в C# от 22.02.2017 10:12
Изменено 04.03.2017 21:59 VladD2
виртуальные методы в C#
У меня от этого мозг ломается. В моей картине мира виртуальной функция Test должна быть только в классе M.
Что надо сделать, чтобы на экран был выведен 0 ? (Не меняя исходного кода)
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 ? (Не меняя исходного кода)
виртуальные методы в C#
У меня от этого мозг ломается. В моей картине мира виртуальной функция Test должна быть только в классе M.
Что надо сделать, чтобы на экран был выведен 0 ? (Не меняя исходного кода)
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 ? (Не меняя исходного кода)