C# Concepts / C# 概念
以及它们在 VL 里怎么表达。
foo++
像下面这样的表达式,在 VL 里怎么写:
var foo = 1;
foo++;
首先我们得同意,上面这段只是这样写的简写:
var foo = 1;
foo = foo + 1;
那么下面这张草图应该这样读:下面那个 foo 数据板对应赋值号的左边(foo =),上面那个 foo 数据板对应被初始化的变量(var foo = 1)。也就是:
foo(下面的数据板) = foo(上面的数据板) + 1;
(上游此处引用的图片在其仓库中已缺失:示意从 IOBox 连到 foo 数据板的那条线是白色的,表示它被指派给了构造器)
(上游此处引用的图片在其仓库中已缺失:示意 + 1 的快捷写法 —— 用 Inc 节点)
Nullable
引用外部库时,你可能会碰到类型为 Nullable<T> 的输入或输出针脚。要处理它们,需要从 GAC 中引用 System.Runtime 程序集。
这样你就能用 HasValue 和 Value 这两个节点从可空的输出里读值。而要给一个需要 Nullable<T> 的输入设值,只要在值和那个输入之间放一个 CastAs 节点就够了。
备注
CastAs 只有在节点浏览器里启用了 Advanced 视角时才会出现。
Variables / 变量
(上游此节尚未撰写。)
Lambda
(上游此节尚未撰写。)
Observable
见响应式。
Task
(上游此节尚未撰写。)
Enumerator
引用外部库时,你可能会碰到一些集合类型,它们并不继承自 Sequence,因此没法直接用在 VL 的 ForEach 循环里。
这类集合多半仍然支持 Enumerator。在 VL 里处理 enumerator 的办法是用这两个节点:MoveNext 和 Current。