3 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
就像上面鏈接的Visual C#程序管理器所說(shuō),在某些情況下,With語(yǔ)句更有效,他給出了一個(gè)示例,該示例被用作重復(fù)訪問(wèn)復(fù)雜表達(dá)式的簡(jiǎn)寫(xiě)形式。
使用擴(kuò)展方法和泛型,可以通過(guò)添加如下內(nèi)容來(lái)創(chuàng)建與With語(yǔ)句大致等效的內(nèi)容:
public static T With<T>(this T item, Action<T> action)
{
action(item);
return item;
}
以一個(gè)簡(jiǎn)單的示例說(shuō)明如何使用它,使用lambda語(yǔ)法,然后可以使用它來(lái)更改如下內(nèi)容:
updateRoleFamily.RoleFamilyDescription = roleFamilyDescription;
updateRoleFamily.RoleFamilyCode = roleFamilyCode;
對(duì)此:
updateRoleFamily.With(rf =>
{
rf.RoleFamilyDescription = roleFamilyDescription;
rf.RoleFamilyCode = roleFamilyCode;
});
在這樣的示例中,唯一的好處也許是布局更好,但是具有更復(fù)雜的引用和更多屬性,它很可能為您提供更具可讀性的代碼。
- 3 回答
- 0 關(guān)注
- 455 瀏覽
添加回答
舉報(bào)