OutArgument<T> 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示從活動傳出之資料流程的繫結終端機。
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>。 這個範例取自格式器範例。
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>用來傳遞除法的其餘部分,而Result衍生活動提供的Activity<TResult>輸出自變數則用來傳遞商數。
注意
如果您的自訂活動衍生自具有 CodeActivity<TResult> 做為其泛型型別引數的泛型 Int32,當您叫用具有 WorkflowInvoker 叫用方法的活動,它會傳回 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>>) |
使用指定的 OutArgument<T>,初始化 Activity<TResult> 類別的新執行個體。 |
OutArgument<T>(DelegateArgument) |
使用指定的 OutArgument<T>,初始化 DelegateArgument 類別的新執行個體。 |
OutArgument<T>(Expression<Func<ActivityContext,T>>) |
使用指定的運算式,初始化 OutArgument<T> 類別的新執行個體。 |
OutArgument<T>(Variable) |
使用指定的 OutArgument<T>,初始化 Variable 類別的新執行個體。 |
欄位
ResultValue |
表示 "Result" 的常數值,該值在運算式基底類別 Result 中會對應至型別 OutArgument 的 ActivityWithResult 屬性名稱。 (繼承來源 Argument) |
屬性
ArgumentType |
取得繫結至這個 Argument 資料的資料型別。 (繼承來源 Argument) |
Direction |
取得 ArgumentDirection,指定 Argument 是否表示資料流程傳入活動、從活動傳出或由活動傳入與傳出。 (繼承來源 Argument) |
EvaluationOrder |
取得或設定指定評估引數順序之以零為起始的值。 (繼承來源 Argument) |
Expression |
取得表示這個 Activity<TResult> 值的 OutArgument<T>。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
FromDelegateArgument(DelegateArgument) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 DelegateArgument。 |
FromExpression(Activity<Location<T>>) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 Activity<TResult>。 |
FromVariable(Variable) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 Variable。 |
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>) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 Activity<TResult>。 |
Implicit(DelegateArgument to OutArgument<T>) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 DelegateArgument。 |
Implicit(Variable to OutArgument<T>) |
使用指定的 OutArgument<T>,初始化並傳回建構的新 Variable。 |
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應