1

resulttypeBooleanmyInttypeの2 つの変数を含む単純なワークフローを作成するとしますInteger。次に、アクティビティ「Assign」を追加resultし、結果ボックスとInteger.TryParse("22", myInt)右手式に配置します。このアクティビティを実行した後も、変数の値は のままです0

呼び出しの結果がTryParse変数に正しく格納されないのはなぜですか? (ここでもエラーは発生しません)

4

2 に答える 2

2

それは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")
        }
    }
};
于 2012-09-26T13:48:13.647 に答える
1

obj/x86/Debug の下、またはプロジェクト内で一時ファイルが配置されている場所を調べると、好奇心を満たす中間の .cs ファイルがいくつか見つかります。これを試してみたところ、プライベート int myInt とプライベート bool の結果を持つクラスと、これらの変数を使用した tryparse ステートメントが得られます。したがって、出力ウィンドウにいくつかの問題が見られましたが、爆発はありません!

于 2012-09-26T23:56:55.303 に答える