我知道VB.Net,正在尝试重新学习C#。C#中是否有一个With块等效项?
3 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
就像上面链接的Visual C#程序管理器所说,在某些情况下,With语句更有效,他给出了一个示例,该示例被用作重复访问复杂表达式的简写形式。
使用扩展方法和泛型,可以通过添加如下内容来创建与With语句大致等效的内容:
public static T With<T>(this T item, Action<T> action)
{
action(item);
return item;
}
以一个简单的示例说明如何使用它,使用lambda语法,然后可以使用它来更改如下内容:
updateRoleFamily.RoleFamilyDescription = roleFamilyDescription;
updateRoleFamily.RoleFamilyCode = roleFamilyCode;
对此:
updateRoleFamily.With(rf =>
{
rf.RoleFamilyDescription = roleFamilyDescription;
rf.RoleFamilyCode = roleFamilyCode;
});
在这样的示例中,唯一的好处也许是布局更好,但是具有更复杂的引用和更多属性,它很可能为您提供更具可读性的代码。
- 3 回答
- 0 关注
- 411 浏览
添加回答
举报
0/150
提交
取消