Я действительно не уверен, что еще нужно Google, чтобы попытаться найти ответ на этот вопрос, может ли кто-нибудь сказать мне правильный способ реализовать эти события? В ClassOne событие считается нулевым, и я просто не понимаю ....Каскадирование множественного наследования и событий
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MultipleInheritance
{
static class Program
{
static void Main()
{
ClassThree cThree = new ClassThree();
cThree.fireEventOne += cThree_fireEventOne;
cThree.Start();
cThree.Start2();
cThree.Start3();
}
static void cThree_fireEventOne()
{
Console.WriteLine("one two three");
}
}
}
и здесь классы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MultipleInheritance
{
public abstract class ClassOne
{
public delegate void EventOne();
public event EventOne fireEventOne;
public ClassOne()
{
}
public void Start()
{
fireEventOne();
}
public abstract void Start2();
}
public abstract class ClassTwo :ClassOne
{
public delegate void EventOne();
public event EventOne fireEventOne;
public override void Start2()
{
fireEventOne();
}
public abstract void Start3();
}
public class ClassThree :ClassTwo
{
public delegate void EventOne();
public event EventOne fireEventOne;
public override void Start3()
{
fireEventOne();
}
}
}
Также обратите внимание, что C# на самом деле не имеет множественного наследования, которое наследует класс от более чем одного класса на том же уровне, что-то вроде «Ребенок: мать, отец». То, что вы делаете, - это просто стандартное наследование. Это только «несколько» в том смысле, что у вас есть несколько потомков, но не совсем корректно называть его «множественным». –
ah, i c, thanks =] –