IndexerReference<TOperand, TItem> Class

.NET Framework (current version)
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Represents an element referenced by an object indexer that can be used as an l-value in an expression.

Namespace:   System.Activities.Expressions
Assembly:  System.Activities (in System.Activities.dll)

System.Object
  System.Activities.Activity
    System.Activities.ActivityWithResult
      System.Activities.Activity<TResult>
        System.Activities.CodeActivity<TResult>
          System.Activities.Expressions.IndexerReference<TOperand, TItem>

[ContentPropertyAttribute("Indices")]
public sealed class IndexerReference<TOperand, TItem> : CodeActivity<Location<TItem>>

Type Parameters

TOperand

The type with the indexer.

TItem

The type of the indexer array.

NameDescription
System_CAPS_pubmethodIndexerReference<TOperand, TItem>()

Initializes a new instance of the IndexerReference<TOperand, TItem> class.

NameDescription
System_CAPS_protpropertyCacheId

Gets the identifier of the cache that is unique within the scope of the workflow definition.(Inherited from Activity.)

System_CAPS_pubpropertyDisplayName

Gets or sets an optional friendly name that is used for debugging, validation, exception handling, and tracking.(Inherited from Activity.)

System_CAPS_pubpropertyId

Gets an identifier that is unique in the scope of the workflow definition.(Inherited from Activity.)

System_CAPS_protpropertyImplementationVersion

Gets or sets the implementation version of the activity.(Inherited from CodeActivity<TResult>.)

System_CAPS_pubpropertyIndices

Gets a collection of arguments that represent the indices of the element in the indexer array.

System_CAPS_pubpropertyOperand

Gets or sets the object that contains the indexer.

System_CAPS_pubpropertyResult

Gets or sets the result argument for the Activity<TResult>.(Inherited from Activity<TResult>.)

System_CAPS_pubpropertyResultType

When implemented in a derived class, gets the type of an activity OutArgument.(Inherited from ActivityWithResult.)

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodShouldSerializeDisplayName()

Indicates whether the DisplayName property should be serialized.(Inherited from Activity.)

System_CAPS_pubmethodToString()

Returns a String that contains the Id and DisplayName of the Activity.(Inherited from Activity.)

The following code example uses IndexerReference<TOperand, TItem> in an Assign activity to assign an integer value to the object item at index [1,2] and prints the item value to the console. The Assign activity is equivalent to the following statement when using an object that implements an indexer. myObj[1,2] = 4; .

System_CAPS_noteNote

Instead of instantiating the IndexerReference<TOperand, TItem> l-value expression activity directly, it is strongly recommended that you call ConvertReference<TResult>, which provides a higher level of abstraction and enables you to implement your workflow more intuitively.


// Define a class with a multi-dimensional indexer.
public class ObjectWithIndexer
{
    private int[,] array = new int[10,10];
    public int this[int i, int j]
    {
        get { return array[i,j]; }
        set { array[i,j] = value; }
    }
}

public static void IndexerReferenceSample()
{
    // Create a variable of type ObjectWithIndexer to store the object item.
    var oivar = new Variable<ObjectWithIndexer>("oivar", new ObjectWithIndexer());

    Activity myActivity = new Sequence
    {
        Variables = { oivar },
        Activities = 
        {                    
            // Create an Assign activity with a reference for the object at index [1,2].
            new Assign<int>
            {
                To = new IndexerReference<ObjectWithIndexer, int>
                {
                    Operand = oivar,
                    Indices =
                    {
                        new InArgument<int>(1),
                        new InArgument<int>(2)
                    }
                },
                // Assign an integer value to the object at index [1,2].
                Value = 4,
            },
            // Print the new item value to the console.
            new WriteLine()
            {
                Text = ExpressionServices.Convert<string>(ctx => oivar.Get(ctx)[1, 2].ToString()),
            }
        }
    };

    // Invoke the Sequence activity.
    WorkflowInvoker.Invoke(myActivity);
}

.NET Framework
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: