如何创建一个可以在actionscript中返回任何内容的函数

Zee*_*ang 1 apache-flex actionscript-3

如何使函数返回*,由星,我的意思是函数能够返回任何东西,然后我可以相应地进行类型转换?

private function get_current_files_view():TileList
    {
        var tlist:TileList;
        //switch(this[fm_model.files_display_type])
        switch(vs_file_display.selectedChild)
        {
            case cvs_user_files:    
                tlist = tlist_files;
                break;

            case bx_shared_data:                    
                tlist = tlist_shared_with_me;
                break;
            default:    
                throw new Error('Invalid container found');
        }
        return tlist;
    }
Run Code Online (Sandbox Code Playgroud)

假设在这个函数中,我希望这个函数返回tilelist和datagrid(根据情况)应该改变什么.

Plz让我知道谢谢你.

Jef*_*ser 11

假设在这个函数中,我希望这个函数返回tilelist和datagrid(根据情况)应该改变什么.

如果是这种情况,那么您应该返回ListBase,它是List和DataGrid的父类.

我希望能够返回任何对象,您可以将返回类型指定为Object.

如果你真的想要返回任何东西,包括整数值,比如整数,你可以使用*,如另一个答案所述.如果这真的是你需要的,我的直觉是你可能需要重构你的应用程序.


Bri*_*sio 8

您无需定义返回类型.如果你不这样做,那么你可以退回任何东西(不推荐):

private function get_current_files_view() { }
Run Code Online (Sandbox Code Playgroud)

或者,你可以定义它必须返回一些东西,但任何东西

private function get_current_files_view():* { }
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要特定的话,您可以始终使用接口或基类:

private function get_current_files_view():ISomeInterface {}
Run Code Online (Sandbox Code Playgroud)

这有帮助吗?或者我完全误解了你的问题?

  • 严格模式下的Flex编译器不会接受没有返回类型的方法.最佳做法是始终定义返回类型. (5认同)