當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET Expression.ArrayAccess方法代碼示例

本文整理匯總了VB.NET中System.Linq.Expressions.Expression.ArrayAccess方法的典型用法代碼示例。如果您正苦於以下問題:VB.NET Expression.ArrayAccess方法的具體用法?VB.NET Expression.ArrayAccess怎麽用?VB.NET Expression.ArrayAccess使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Linq.Expressions.Expression的用法示例。


在下文中一共展示了Expression.ArrayAccess方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: List

' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This parameter expression represents a variable that will hold the two-dimensional array.
Dim arrayExpr As ParameterExpression = Expression.Parameter(GetType(Integer(,)), "Array")

' This parameter expression represents a first array index.            
Dim firstIndexExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "FirstIndex")
' This parameter expression represents a second array index.            
Dim secondIndexExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "SecondIndex")

' The list of indexes.
Dim indexes As List(Of Expression) = New List(Of Expression) From
    {firstIndexExpr, secondIndexExpr}

' This parameter represents the value that will be added to a corresponding array element.
Dim valueExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "Value")

' This expression represents an access operation to a multidimensional array.
' It can be used for assigning to, or reading from, an array element.
Dim arrayAccessExpr As Expression = Expression.ArrayAccess(
    arrayExpr,
    indexes
)

' This lambda expression assigns a value provided to it to a specified array element.
' The array, the index of the array element, and the value to be added to the element
' are parameters of the lambda expression.
Dim lambdaExpr As Expression(Of Func(Of Integer(,), Integer, Integer, Integer, Integer)) =
    Expression.Lambda(Of Func(Of Integer(,), Integer, Integer, Integer, Integer))(
        Expression.Assign(arrayAccessExpr, Expression.Add(arrayAccessExpr, valueExpr)),
        arrayExpr,
        firstIndexExpr,
        secondIndexExpr,
        valueExpr
)

' Print expressions.
Console.WriteLine("Array Access Expression:")
Console.WriteLine(arrayAccessExpr.ToString())

Console.WriteLine("Lambda Expression:")
Console.WriteLine(lambdaExpr.ToString())

Console.WriteLine("The result of executing the lambda expression:")

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
' Parameters passed to the Invoke method are passed to the lambda expression.
Dim sampleArray = {{10, 20, 30},
                       {100, 200, 300}}
Console.WriteLine(lambdaExpr.Compile().Invoke(sampleArray, 1, 1, 5))
開發者ID:VB.NET開發者,項目名稱:System.Linq.Expressions,代碼行數:52,代碼來源:Expression.ArrayAccess

輸出:

Array Access Expression:
Array[FirstIndex, SecondIndex]

Lambda Expression:
(Array, FirstIndex, SecondIndex Value) => 
(Array[FirstIndex, SecondIndex] = (Array[FirstIndex, SecondIndex] + Value))

The result of executing the lambda expression:
205

示例2: Expression

' Add the following directive to your file:
' Imports System.Linq.Expressions  

' This parameter expression represents a variable that will hold the array.
Dim arrayExpr As ParameterExpression = Expression.Parameter(GetType(Integer()), "Array")

' This parameter expression represents an array index.
' For multidimensional arrays, you can define several indexes. 
Dim indexExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "Index")

' This parameter represents the value that will be added to a corresponding array element.
Dim valueExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "Value")

' This expression represents an array access operation.
' It can be used for assigning to, or reading from, an array element.
Dim arrayAccessExpr As Expression = Expression.ArrayAccess(
    arrayExpr,
    indexExpr
)

' This lambda expression assigns a value provided to it to a specified array element.
' The array, the index of the array element, and the value to be added to the element
' are parameters of the lambda expression.
Dim lambdaExpr As Expression(Of Func(Of Integer(), Integer, Integer, Integer)) =
    Expression.Lambda(Of Func(Of Integer(), Integer, Integer, Integer))(
        Expression.Assign(arrayAccessExpr, Expression.Add(arrayAccessExpr, valueExpr)),
    arrayExpr,
    indexExpr,
    valueExpr
  )

' Print expressions.
Console.WriteLine("Array Access Expression:")
Console.WriteLine(arrayAccessExpr.ToString())

Console.WriteLine("Lambda Expression:")
Console.WriteLine(lambdaExpr.ToString())

Console.WriteLine("The result of executing the lambda expression:")

' The following statement first creates an expression tree,
' then compiles it, and then executes it.
' Parameters passed to the Invoke method are passed to the lambda expression.
Console.WriteLine(lambdaExpr.Compile().Invoke(New Integer() {10, 20, 30}, 0, 5))
開發者ID:VB.NET開發者,項目名稱:System.Linq.Expressions,代碼行數:44,代碼來源:Expression.ArrayAccess

輸出:

Array Access Expression:
Array[Index]

Lambda Expression:
(Array, Index, Value) => (Array[Index] = (Array[Index] + Value))

The result of executing the lambda expression:
15


注:本文中的System.Linq.Expressions.Expression.ArrayAccess方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。