首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将方法作为另一个方法的参数传递

如何将方法作为另一个方法的参数传递
EN

Stack Overflow用户
提问于 2012-07-22 02:02:41
回答 6查看 139关注 0票数 0

我需要检查在"parent“对象中,是否有一个可以接受的方法在某个特定时刻调用”孩子“中的某个方法。例如,父对象(组件)包含子对象(换句话说就是组件部分),而父对象现在正在释放,因此必须禁止所有(或部分)子活动(即启动新服务线程、排队新客户端请求等)。

代码语言:javascript
运行
复制
public class Parent
{
    public bool IsMethodCallAcceptable(reference_to_method) {...}
}

public class Child
{
    public int SomeMethod(int intArg, string stringArg)
    {
        if(!_parent.IsMethodCallAcceptable(reference_to_SomeMethod_with_actual_args))
            throw new ...
        ...
    }

    private void AnotherMethod(string param = null) {...}
    {
        if(!_parent.IsMethodCallAcceptable(reference_to_AnotherMethod_with_actual_args))
            throw new ...
        ...
    }

    private Guid ThirdMethod()
    {
        if(!_parent.IsMethodCallAcceptable(reference_to_ThirdMethod))
            throw new ...
        ...            
    }
}

有什么办法可以做到吗?

EN

Stack Overflow用户

发布于 2012-07-22 02:05:52

最简单的方法是传递URI而不是引用:

例如,"NS.Child.ThirdMethod“。

否则,委托是最接近函数引用的对象。如果你愿意,你可以通过它。

然而,这种方法不符合OOP概念规则:基类应该对其子类一无所知。最好使用某种锁定机制来告诉孩子,他们不能访问资源。

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11594630

复制
相关文章

相似问题

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