Expression.MemberInit和Expression.MemberBind
时间: 2024-11-15 09:20:52 浏览: 3
Expression.Blend4.part1
3星 · 编辑精心推荐
`Expression.MemberInit` 和 `Expression.MemberBind` 都是 .NET Framework 中动态表达式 (Dynamic Expressions) 的一部分,用于 LINQ to Objects (语言集成查询到对象) 模式中。它们主要用于创建初始化和绑定的对象实例。
`Expression.MemberInit` 表示对新创建对象的成员初始化过程。它接受一个 `NewExpression`(新建表达式),表示一个新的基础对象实例,然后可以添加一系列的 `MemberBinding` 进行属性或字段的设置。每个 `MemberBinding` 包含了一个目标成员(如字段、属性或索引器)以及一个表达式的值,用于给这个成员赋值。
例如:
```csharp
var newObject = Expression.New(typeof(MyClass));
var memberInit = Expression.MemberInit(newObject,
Expression.Bind<MyClass, string>(typeof(MyClass).GetProperty("Name"), "Value"));
```
这里创建了一个 MyClass 类的新实例,并通过 MemberInit 初始化 Name 属性为 "Value"。
`Expression.MemberBind` 则是创建 `MemberBinding` 对象的核心部分,用于指定要绑定的目标成员和赋值表达式。通常在 `MemberInit` 中直接使用,而不是单独使用。
阅读全文