Expression.ElementInit 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ElementInit를 만듭니다.
오버로드
| ElementInit(MethodInfo, IEnumerable<Expression>) |
지정된 ElementInit을 두 번째 인수로 사용하여 IEnumerable<T>를 만듭니다. |
| ElementInit(MethodInfo, Expression[]) |
지정된 값 배열을 두 번째 인수로 사용하여 ElementInit를 만듭니다. |
ElementInit(MethodInfo, IEnumerable<Expression>)
- Source:
- ElementInit.cs
- Source:
- ElementInit.cs
- Source:
- ElementInit.cs
지정된 ElementInit을 두 번째 인수로 사용하여 IEnumerable<T>를 만듭니다.
public:
static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
static member ElementInit : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, arguments As IEnumerable(Of Expression)) As ElementInit
매개 변수
- addMethod
- MethodInfo
MethodInfo 속성에 설정할 AddMethod입니다.
- arguments
- IEnumerable<Expression>
IEnumerable<T> 속성에 설정할 Expression 개체가 포함된 Arguments입니다.
반환
ElementInit 및 AddMethod 속성이 지정된 값으로 설정된 Arguments입니다.
예외
addMethod 또는 arguments가 null인 경우
addMethod를 나타내는 메서드 이름이 "Add"(대/소문자 구분 안 함)가 아닌 경우
또는
addMethod를 나타내는 메서드가 인스턴스 메서드가 아닌 경우
또는
arguments의 요소 수가 addMethod로 나타내는 메서드의 매개 변수 수와 같지 않은 경우
또는
arguments의 하나 이상의 요소에 대한 Type 속성을 addMethod가 나타내는 메서드의 해당 매개 변수 형식에 적용할 수 없는 경우
예제
다음 예제에서는 사용 하는 ElementInit(MethodInfo, Expression[]) 방법을 보여 줍니다는 메서드를 호출 하는 를 나타내는 Add 를 만드는 ElementInit 사전 컬렉션의 요소를 초기화 하는 메서드입니다.
string tree = "maple";
System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");
// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
System.Linq.Expressions.Expression.ElementInit(
addMethod,
System.Linq.Expressions.Expression.Constant(tree.Length),
System.Linq.Expressions.Expression.Constant(tree));
Console.WriteLine(elementInit.ToString());
// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"
Dim addMethod As System.Reflection.MethodInfo = _
Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")
' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
System.Linq.Expressions.Expression.ElementInit( _
addMethod, _
System.Linq.Expressions.Expression.Constant(tree.Length), _
System.Linq.Expressions.Expression.Constant(tree))
Console.WriteLine(elementInit.ToString())
' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")
설명
매개 변수는 addMethod "Add"(대/소문자를 구분하지 않음)라는 instance 메서드를 나타내야 합니다. add 메서드는 의 요소 arguments수와 동일한 수의 매개 변수를 가져야 합니다. 의 각 요소의 속성을 따옴표로 묶은 후 add 메서드의 해당 매개 변수 형식에 할당할 수 있어야 합니다.argumentsType
참고
요소는 해당 메서드 매개 변수가 형식 Expression인 경우에만 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 Operand 이 UnaryExpression 의 arguments요소인 입니다.
적용 대상
ElementInit(MethodInfo, Expression[])
- Source:
- ElementInit.cs
- Source:
- ElementInit.cs
- Source:
- ElementInit.cs
지정된 값 배열을 두 번째 인수로 사용하여 ElementInit를 만듭니다.
public:
static System::Linq::Expressions::ElementInit ^ ElementInit(System::Reflection::MethodInfo ^ addMethod, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.ElementInit ElementInit (System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] arguments);
static member ElementInit : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ElementInit
Public Shared Function ElementInit (addMethod As MethodInfo, ParamArray arguments As Expression()) As ElementInit
매개 변수
- addMethod
- MethodInfo
MethodInfo 속성에 설정할 AddMethod입니다.
- arguments
- Expression[]
Expression 속성에 설정할 Arguments 개체의 배열입니다.
반환
ElementInit 및 AddMethod 속성이 지정된 값으로 설정된 Arguments입니다.
예외
addMethod 또는 arguments가 null인 경우
addMethod가 나타내는 메서드의 이름이 "Add"(대/소문자 구분 안 함)가 아닌 경우
또는
addMethod가 나타내는 메서드가 인스턴스 메서드가 아닌 경우
또는
인수에 들어 있는 요소 수가 addMethod가 나타내는 메서드의 매개 변수 개수와 다른 경우
또는
arguments의 하나 이상의 요소에 대한 Type 속성을 addMethod가 나타내는 메서드의 해당 매개 변수 형식에 적용할 수 없는 경우
예제
다음 예제에서는 사용 하는 ElementInit(MethodInfo, Expression[]) 방법을 보여 줍니다는 메서드를 호출 하는 를 나타내는 Add 를 만드는 ElementInit 사전 컬렉션의 요소를 초기화 하는 메서드입니다.
string tree = "maple";
System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");
// Create an ElementInit that represents calling
// Dictionary<int, string>.Add(tree.Length, tree).
System.Linq.Expressions.ElementInit elementInit =
System.Linq.Expressions.Expression.ElementInit(
addMethod,
System.Linq.Expressions.Expression.Constant(tree.Length),
System.Linq.Expressions.Expression.Constant(tree));
Console.WriteLine(elementInit.ToString());
// This code produces the following output:
//
// Void Add(Int32, System.String)(5,"maple")
Dim tree As String = "maple"
Dim addMethod As System.Reflection.MethodInfo = _
Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")
' Create an ElementInit that represents calling
' Dictionary(Of Integer, String).Add(tree.Length, tree).
Dim elementInit As System.Linq.Expressions.ElementInit = _
System.Linq.Expressions.Expression.ElementInit( _
addMethod, _
System.Linq.Expressions.Expression.Constant(tree.Length), _
System.Linq.Expressions.Expression.Constant(tree))
Console.WriteLine(elementInit.ToString())
' This code produces the following output:
'
' Void Add(Int32, System.String)(5,"maple")
설명
매개 변수는 addMethod "Add"(대/소문자를 구분하지 않음)라는 instance 메서드를 나타내야 합니다. add 메서드는 의 요소 arguments수와 동일한 수의 매개 변수를 가져야 합니다. 의 각 요소의 속성을 따옴표로 묶은 후 add 메서드의 해당 매개 변수 형식에 할당할 수 있어야 합니다.argumentsType
참고
요소는 해당 메서드 매개 변수가 형식 Expression인 경우에만 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 Operand 이 UnaryExpression 의 arguments요소인 입니다.