我正在为公司编制一个休假控制程序(只是为了学习,不是认真的)。现在我有一个抽象类叫做Employee。和4个阶段的雇员。
EveryOne有自己的类:
普通员工可以请求休假,SAL可以说“确定”或“拒绝”请求。如果他说好的话,那就交给CHRO。他可以否决也可以通过。首席执行官是最后一个可以否决它的人。
所有类都继承抽象类。抽象类有一个名为
public delegate void applyVacations(Vacation what_vacations, bool pass_or_deny)所有子类都有一个方法
void apply(Vacation what_vacation, bool pass_or_deny)除了NormalWorker。子类的构造函数将此apply方法推送给委托。
对于所有实例,传递休假请求都是最终的。
示例:
namespace ex
{
public abstract class A
{
public delegate void foo();
public A()
{ }
}
class B : A
{
public B()
{
A.foo = childfoo; // Does not work
}
public void childfoo()
{/* Do something*/}
}
}问候
发布于 2014-03-25 09:36:10
foo是一个委托,所以它是一个类型
在B构造函数中,您应该编写
foo处理程序=childfoo foo;
然后可以调用处理程序()
namespace ex
{
public abstract class A
{
public delegate void foo();
public A()
{ }
}
class B : A
{
private foo handler;
public B()
{
handler = childfoo;
}
public void callHandlerHere()
{
handler();
}
public void childfoo()
{/* Do something*/}
}
}当然,这是为了举例
B b = new B();
b.callHandlerHere() // all object inheriting A can habe a callHandlerHere function for exemple发布于 2014-03-25 09:40:21
您需要创建一个类型为foo的变量,然后将childfoo分配给它,如下所示:
private foo _handler;
public B()
{
// Assign our handler for the foo delegate.
_handler = childfoo;
// Now we can call it.
_handler();
}https://stackoverflow.com/questions/22630273
复制相似问题