gpt4 book ai didi

c# - 将 construct 关键字添加到方法时有什么作用?

转载 作者:太空狗 更新时间:2023-10-29 20:19:25 25 4
gpt4 key购买 nike

这里的代码是X++。尽管我熟悉 C#,但我对此知之甚少。 MS 说它在语法上类似于 C++ 和 C#。

无论如何,我假设下面的代码是一个方法。它以“构造”为关键字。

什么是构造/构造函数方法?将 construct 关键字应用于函数时会发生什么变化?另外,我假设代码会创建某种无限循环是不是错了?

我的假设是它是一个返回类型为“InventMovement”的方法。

static InventMovement construct(Common buffer, InventMovSubType subType = InventMovSubType::None, Common childBuffer = null)
{
InventMovement movement = InventMovement::constructNoThrow(buffer,subType,childBuffer);

if (!movement)
throw error("@SYS20765");

return movement;
}

谢谢!凯文

最佳答案

Construct 不是 X++ 中的关键字,这只是一个名为 construct 的静态方法,它返回一个 InventMovement 类。它用于允许您创建基类的派生类,而不必知道要创建哪个派生类。 AX就是这样实现工厂模式的。您会在 AX 中的许多有抽象基类的地方看到这种模式。

InventMovement 是许多其他类的抽象基类,例如 InventMov_PurchInventMov_Sales。您不能在抽象类上调用 new(),因此不必每次都使用 switch 语句调用 new InventMov_Purch()new InventMov_Sales()要创建 InventMovement 类,您可以使用 InventMovement::construct() 方法为您调用正确的 new()。

关于c# - 将 construct 关键字添加到方法时有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1050325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com