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>。 此範例來自 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>。 |