猿问

与C#中的块等效吗?

我知道VB.Net,正在尝试重新学习C#。C#中是否有一个With块等效项?



千巷猫影
浏览 412回答 3
3回答

蓝山帝景

就像上面链接的Visual C#程序管理器所说,在某些情况下,With语句更有效,他给出了一个示例,该示例被用作重复访问复杂表达式的简写形式。使用扩展方法和泛型,可以通过添加如下内容来创建与With语句大致等效的内容:&nbsp; &nbsp; public static T With<T>(this T item, Action<T> action)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; action(item);&nbsp; &nbsp; &nbsp; &nbsp; return item;&nbsp; &nbsp; }以一个简单的示例说明如何使用它,使用lambda语法,然后可以使用它来更改如下内容:&nbsp; &nbsp; updateRoleFamily.RoleFamilyDescription = roleFamilyDescription;&nbsp; &nbsp; updateRoleFamily.RoleFamilyCode = roleFamilyCode;对此:&nbsp; &nbsp; updateRoleFamily.With(rf =>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rf.RoleFamilyDescription = roleFamilyDescription;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rf.RoleFamilyCode = roleFamilyCode;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });在这样的示例中,唯一的好处也许是布局更好,但是具有更复杂的引用和更多属性,它很可能为您提供更具可读性的代码。
随时随地看视频慕课网APP
我要回答