result
typeBoolean
とmyInt
typeの2 つの変数を含む単純なワークフローを作成するとしますInteger
。次に、アクティビティ「Assign」を追加result
し、結果ボックスとInteger.TryParse("22", myInt)
右手式に配置します。このアクティビティを実行した後も、変数の値は のままです0
。
呼び出しの結果がTryParse
変数に正しく格納されないのはなぜですか? (ここでもエラーは発生しません)
result
typeBoolean
とmyInt
typeの2 つの変数を含む単純なワークフローを作成するとしますInteger
。次に、アクティビティ「Assign」を追加result
し、結果ボックスとInteger.TryParse("22", myInt)
右手式に配置します。このアクティビティを実行した後も、変数の値は のままです0
。
呼び出しの結果がTryParse
変数に正しく格納されないのはなぜですか? (ここでもエラーは発生しません)
それはWFの仕組みではありません。変数には、引数としての in/out の概念がありません。それらは暗黙の演算子を実装していないため、結果が希望どおりに保存されることはありません。
独自の TryParse アクティビティを実装するか、次のようにInvokeMethodを使用できます。
var resultVar = new Variable<bool>("result");
var myIntVar = new Variable<int>("myInt");
var activity = new Sequence
{
Variables =
{
resultVar,
myIntVar
},
Activities =
{
new InvokeMethod
{
TargetType = typeof(int),
MethodName = "TryParse",
Result = new OutArgument<bool>(resultVar),
Parameters =
{
new InArgument<string>("22"),
new OutArgument<int>(myIntVar)
}
},
new WriteLine
{
Text = new VisualBasicValue<string>(@"""INT: "" & myInt")
}
}
};
obj/x86/Debug の下、またはプロジェクト内で一時ファイルが配置されている場所を調べると、好奇心を満たす中間の .cs ファイルがいくつか見つかります。これを試してみたところ、プライベート int myInt とプライベート bool の結果を持つクラスと、これらの変数を使用した tryparse ステートメントが得られます。したがって、出力ウィンドウにいくつかの問題が見られましたが、爆発はありません!