首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽象类和子类中的C#代表

抽象类和子类中的C#代表
EN

Stack Overflow用户
提问于 2014-03-25 09:28:57
回答 2查看 122关注 0票数 0

我正在为公司编制一个休假控制程序(只是为了学习,不是认真的)。现在我有一个抽象类叫做Employee。和4个阶段的雇员。

EveryOne有自己的类:

  • NormalWorker
  • SubjectAreaLeader
  • ChefHumanResourceOfficer
  • 首席执行官

普通员工可以请求休假,SAL可以说“确定”或“拒绝”请求。如果他说好的话,那就交给CHRO。他可以否决也可以通过。首席执行官是最后一个可以否决它的人。

所有类都继承抽象类。抽象类有一个名为

代码语言:javascript
复制
public delegate void applyVacations(Vacation what_vacations, bool pass_or_deny)

所有子类都有一个方法

代码语言:javascript
复制
void apply(Vacation what_vacation, bool pass_or_deny)

除了NormalWorker。子类的构造函数将此apply方法推送给委托。

对于所有实例,传递休假请求都是最终的。

示例:

代码语言:javascript
复制
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*/}
    }

}

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-25 09:36:10

foo是一个委托,所以它是一个类型

在B构造函数中,您应该编写

foo处理程序=childfoo foo;

然后可以调用处理程序()

代码语言:javascript
复制
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*/}
    }
}

当然,这是为了举例

代码语言:javascript
复制
B b = new B();
b.callHandlerHere() // all object inheriting A can habe a callHandlerHere function for exemple
票数 0
EN

Stack Overflow用户

发布于 2014-03-25 09:40:21

您需要创建一个类型为foo的变量,然后将childfoo分配给它,如下所示:

代码语言:javascript
复制
    private foo _handler;
    public B()
    {
        // Assign our handler for the foo delegate.
        _handler = childfoo;

        // Now we can call it.
        _handler();
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22630273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档