共用方式為


OutArgument<T> 類別

定義

系結終端機,表示活動外數據流。

generic <typename T>
public ref class OutArgument sealed : System::Activities::OutArgument
[System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))]
[System.Windows.Markup.ContentProperty("Expression")]
public sealed class OutArgument<T> : System.Activities.OutArgument
[<System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))>]
[<System.Windows.Markup.ContentProperty("Expression")>]
type OutArgument<'T> = class
    inherit OutArgument
Public NotInheritable Class OutArgument(Of T)
Inherits OutArgument

類型參數

T

OutArgument<T>的數據類型。

繼承
OutArgument<T>
屬性

範例

下列程式代碼範例示範如何建立 OutArgument<T>。 此範例來自 Formatter 範例。

Sequence workflow = new Sequence
{
    Variables = { mealExpense, result },
    Activities =
        {
            new Assign<Expense>
            {
               Value = new InArgument<Expense>( (e) => new Meal { Amount = 50, Location = "Redmond", Vendor = "KFC" }),
               To = new OutArgument<Expense>(mealExpense)
            },
            new WriteLine
            {
                Text = new InArgument<string>("Hello")
            },
            approveExpense,
            new ReceiveReply
            {
                Request = approveExpense,
                Content = ReceiveContent.Create(new OutArgument<bool>(result))
            },

            new If
            {
               Condition = new InArgument<bool> (result),
               Then =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Approved")
                    },
               Else =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Cannot be Approved")
                    },
            },
        }
};

備註

OutArgument<T> 可用來將數據流出活動。 如果活動是工作流程的根活動,它也會用來將數據從工作流程流出至工作流程主機。 在此範例中,具有兩個輸入自變數和一個輸出自變數的自定義 Divide 活動會作為工作流程的根活動。 主應用程式會將兩個值傳遞至工作流程,然後在工作流程完成之後擷取除的結果。

int dividend = 500;
int divisor = 36;

Dictionary<string, object> arguments = new Dictionary<string, object>();
arguments.Add("Dividend", dividend);
arguments.Add("Divisor", divisor);

IDictionary<string, object> outputs =
    WorkflowInvoker.Invoke(new Divide(), arguments);

Console.WriteLine("{0} / {1} = {2} Remainder {3}",
    dividend, divisor, outputs["Result"], outputs["Remainder"]);

Divide 活動會使用自變數來接收輸入值,並提供計算的結果值。 Remainder OutArgument<T> 用來傳遞除法的其餘部分,而 Activity<TResult> 衍生活動所提供的 Result 輸出自變數則用來傳遞商數。

注意

如果您的自定義活動衍生自具有 Int32 作為泛型型別自變數的泛型 CodeActivity<TResult>,當您使用 WorkflowInvoker Invoke 方法叫用活動時,它會傳回 Int32 值。 此外,CodeActivity<TResult>.Execute 方法會傳回 Int32 值,而不是 void,您不需要設定傳回值。

public sealed class Divide : CodeActivity
{
    [RequiredArgument]
    public InArgument<int> Dividend { get; set; }

    [RequiredArgument]
    public InArgument<int> Divisor { get; set; }

    public OutArgument<int> Remainder { get; set; }
    public OutArgument<int> Result { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
        int quotient = Dividend.Get(context) / Divisor.Get(context);
        int remainder = Dividend.Get(context) % Divisor.Get(context);

        Result.Set(context, quotient);
        Remainder.Set(context, remainder);
    }
}

建構函式

OutArgument<T>()

使用預設值,初始化 OutArgument<T> 類別的新實例。

OutArgument<T>(Activity<Location<T>>)

使用指定的 Activity<TResult>,初始化 OutArgument<T> 類別的新實例。

OutArgument<T>(DelegateArgument)

使用指定的 DelegateArgument,初始化 OutArgument<T> 類別的新實例。

OutArgument<T>(Expression<Func<ActivityContext,T>>)

使用指定的表達式,初始化 OutArgument<T> 類別的新實例。

OutArgument<T>(Variable)

使用指定的 Variable,初始化 OutArgument<T> 類別的新實例。

欄位

ResultValue

表示 “Result” 的常數值,其對應於表達式基類中類型 OutArgumentResult 屬性的名稱,ActivityWithResult

(繼承來源 Argument)

屬性

ArgumentType

取得系結至這個 Argument之數據的數據類型。

(繼承來源 Argument)
Direction

取得 ArgumentDirection,指定 Argument 是否代表活動、活動外或活動進出活動的數據流。

(繼承來源 Argument)
EvaluationOrder

取得或設定以零起始的值,指定自變數的評估順序。

(繼承來源 Argument)
Expression

取得 Activity<TResult>,表示這個 OutArgument<T>的值。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FromDelegateArgument(DelegateArgument)

使用指定的 DelegateArgument初始化並傳回建構的新 OutArgument<T>

FromExpression(Activity<Location<T>>)

使用指定的 Activity<TResult>初始化並傳回建構的新 OutArgument<T>

FromVariable(Variable)

使用指定的 Variable初始化並傳回建構的新 OutArgument<T>

Get(ActivityContext)

使用指定的活動內容取得 OutArgument<T> 的值。

Get<T>(ActivityContext)

使用指定的型別和活動內容,取得自變數的值。

(繼承來源 Argument)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetLocation(ActivityContext)

取得 OutArgument<T>值的位置。

GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
Set(ActivityContext, Object)

使用指定的活動內容設定自變數的值。

(繼承來源 Argument)
Set(ActivityContext, T)

使用指定的活動內容設定 OutArgument<T> 的值。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

運算子

Implicit(Activity<Location<T>> to OutArgument<T>)

使用指定的 Activity<TResult>初始化並傳回建構的新 OutArgument<T>

Implicit(DelegateArgument to OutArgument<T>)

使用指定的 DelegateArgument初始化並傳回建構的新 OutArgument<T>

Implicit(Variable to OutArgument<T>)

使用指定的 Variable初始化並傳回建構的新 OutArgument<T>

適用於