为了账号安全,请及时绑定邮箱和手机立即绑定

与C#中的块等效吗?

与C#中的块等效吗?

千巷猫影 2019-12-03 15:11:52
我知道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;

          });

在这样的示例中,唯一的好处也许是布局更好,但是具有更复杂的引用和更多属性,它很可能为您提供更具可读性的代码。


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信