gpt4 book ai didi

.net-4.0 - 关于 .NET 4.0 Workflow Foundation 中的 Argument 和 Variable 的混淆

转载 作者:行者123 更新时间:2023-12-04 20:10:05 25 4
gpt4 key购买 nike

我在 .NET 4.0 中使用 Windows Workflow Foundation。以下是我的一些语法/语义混淆。

我有 2 种等效的方法来声明分配事件以将值分配给工作流 变量 (varIsFreeShipping)。

(1) 在设计器中使用 XAML。

enter image description here

(2) 使用代码。

enter image description here

但是在方法 2 中,我似乎正在创建一个 新品 OutArgument< Boolean > 并赋值给它,而不是给 原版变量< bool > varIsFreeShipping。而 OutArgument 和 Variable 是完全不同的类型。

那么分配给这个新 Argument 的值如何最终达到原始 Variable 呢?

这种模式在 WF 4.0 中似乎很常见。有人可以对此有所了解吗?

谢谢!

最佳答案

事实上,第二种(2)方法可以写成:

Then = new Assign<bool>
{
To = varIsFreeShipping,
Value = true
}

这一切都有效,因为 OutArgument<T>可以通过 Variable<T> 初始化使用 implicit operator .

在您的第一个 (1) 分配中,使用编辑器,这就是幕后发生的事情;该变量正在从 Variable 隐式转换为 OutArgument。

WF4 使用了很多隐式运算符,主要是 Activity from/to Variable 、OutArgument from/to Variable 等。如果你看一下,它们都代表了一条数据(已经评估或不),它位于某处。它与 C# 中的完全相同,例如:
public int SomeMethod(int a)
{
var b = a;
return a;
}

您可以为变量分配一个参数,但您也可以将相同的变量作为输出参数返回。这就是您对 Assign 事件所做的事情(使用变量 varIsFreeShipping 作为事件的 out 参数)。

这回答了你的问题?

关于.net-4.0 - 关于 .NET 4.0 Workflow Foundation 中的 Argument<T> 和 Variable<T> 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822882/

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