如何检查对象是否是HAXE给定类的后代?

问题描述 投票:3回答:1

我想能够检查的对象是否是给定类的后代,但它似乎并不可能。

我想从端口C#下面的代码:

public virtual Systems Add(ISystem system) {
    var initializeSystem = system as IInitializeSystem;
    if(initializeSystem != null) {
        _initializeSystems.Add(initializeSystem);
    }

    var executeSystem = system as IExecuteSystem;
    if(executeSystem != null) {
        _executeSystems.Add(executeSystem);
    }

    var cleanupSystem = system as ICleanupSystem;
    if(cleanupSystem != null) {
        _cleanupSystems.Add(cleanupSystem);
    }

    var tearDownSystem = system as ITearDownSystem;
    if(tearDownSystem != null) {
        _tearDownSystems.Add(tearDownSystem);
    }

    return this;
}

什么是实现HAXE相同的功能的最佳方式?请注意,一个对象可能被后代几类,我测试的。

oop haxe
1个回答
3
投票

您是否尝试过Std.is()

if (Std.is(system, IInitializeSystem)) {
    _initializeSystems.add(cast system);
}

if (Std.is(system, IExecuteSystem)) {
    _executeSystems.add(cast system);
}

// etc
© www.soinside.com 2019 - 2024. All rights reserved.