【问题标题】:Data-type as parameter数据类型作为参数
【发布时间】:2017-04-10 12:44:44
【问题描述】:

我想在我的应用程序中添加一个data type 参数。此参数将接受所有原始类型和类。

F.ex:

FUNCTION receiveDataType RETURNS LOGICAL (dataType AS DATATYPE):

    IF dataType = mypackage.MyClass THEN ...
    ELSE IF dataType = INTEGER THEN ...

END FUNCTION.

一种方法是使用CHARACTER-参数并验证它是否引用了现有的data type。但是,Progress 自己的一些程序将数据类型作为参数(f.ex CAST())。是否可以对用户创建的程序做同样的事情?

【问题讨论】:

    标签: database syntax progress-4gl


    【解决方案1】:

    函数在编译时是严格类型化的,所以你不能那样做。

    如果可以的话,程序会将任何类型自动转换为目标输入参数类型。

    OO 具有重载,这意味着可以在具有您要查找的数据类型的类中创建不同的方法,并且代码将在您编译/运行时调用相应的方法。然后,您可以让您的代码调用类中的通用例程来执行您想要的操作。

    【讨论】:

    • 我想补充一点:要支持任何类型的 Progress 参数,您需要创建尽可能多的重载方法,因为存在原始类型(Char、LongChar、Date、DateTime、Decimal、Int、 Int64,逻辑)和类(Progress.Lang.Object),因为所有类型都没有“通用基类”。
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多