第二十八章 Classes - 引用其他类的方法

引用其他类的方法

在方法(或例程)中,使用下面的语法来引用其他类中的方法:

要调用类方法并访问其返回值,请使用如下表达式:

 ##class(Package.Class).MethodName(arguments)
iris.cls("Package.Class").MethodName(arguments)

例如:

 Set x=##class(Util.Utils).GetToday()
x=iris.cls("Util.Utils").GetToday()

也可以调用一个类方法而不访问它的返回值,如下所示:

 Do ##class(Util.Utils).DumpValues()
iris.cls("Util.Utils").DumpValues()

注意:##class不区分大小写。

  • 要调用实例方法,创建一个实例,然后在ObjectScriptPython中使用如下表达式来调用该方法并访问其返回值:
instance.MethodName(arguments)

例如:

 Set x=instance.GetName()
x=instance.GetName()

你也可以在不访问返回值的情况下调用实例方法,方法如下:

 Do instance.InsertItem("abc")
instance.InsertItem("abc")

并非所有方法都有返回值,因此请选择适合情况的语法。

对当前实例的引用

在实例方法中,有时需要引用当前实例本身,而不是实例的属性或方法。例如,在调用其他代码时,可能需要将当前实例作为参数传递。

ObjectScript中,使用特殊变量$THIS来引用当前实例。在Python中,使用变量self来引用当前实例。

 Set sc=header.ProcessService($this)
sc=header.ProcessService(self)
09-15 09:34