zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Unity/Assets/Hotfix/Logic/Model/Base/Event/IEvent.cs

131 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
namespace ET
{
#if ILRuntime
public interface IEvent
{
void Handle();
void Handle(object a);
void Handle(object a, object b);
void Handle(object a, object b, object c);
}
public abstract class AEvent : IEvent
{
public void Handle()
{
this.Run();
}
public void Handle(object a)
{
throw new NotImplementedException();
}
public void Handle(object a, object b)
{
throw new NotImplementedException();
}
public void Handle(object a, object b, object c)
{
throw new NotImplementedException();
}
public abstract void Run();
}
public abstract class AEvent<A>: IEvent
{
public void Handle()
{
throw new NotImplementedException();
}
public void Handle(object a)
{
this.Run((A)a);
}
public void Handle(object a, object b)
{
throw new NotImplementedException();
}
public void Handle(object a, object b, object c)
{
throw new NotImplementedException();
}
public abstract void Run(A a);
}
public abstract class AEvent<A, B>: IEvent
{
public void Handle()
{
throw new NotImplementedException();
}
public void Handle(object a)
{
throw new NotImplementedException();
}
public void Handle(object a, object b)
{
this.Run((A)a, (B)b);
}
public void Handle(object a, object b, object c)
{
throw new NotImplementedException();
}
public abstract void Run(A a, B b);
}
public abstract class AEvent<A, B, C>: IEvent
{
public void Handle()
{
throw new NotImplementedException();
}
public void Handle(object a)
{
throw new NotImplementedException();
}
public void Handle(object a, object b)
{
throw new NotImplementedException();
}
public void Handle(object a, object b, object c)
{
this.Run((A)a, (B)b, (C)c);
}
public abstract void Run(A a, B b, C c);
}
#else
//public abstract class AOldEvent : ET.AOldEvent
//{
//}
//public abstract class AOldEvent<A> : ET.AOldEvent<A>
//{
//}
//public abstract class AOldEvent<A, B> : ET.AOldEvent<A, B>
//{
//}
//public abstract class AOldEvent<A, B, C> : ET.AOldEvent<A, B, C>
//{
//}
#endif
}