gpt4 book ai didi

c# - 仅使用扩展方法来设置默认属性是一种好习惯吗?

转载 作者:太空狗 更新时间:2023-10-30 01:05:41 25 4
gpt4 key购买 nike

我正在使用一组第 3 方控件,并且我正在考虑使用扩展方法来设置一些几乎在应用程序中使用此控件的任何时候都需要的属性。

为这种用途构建扩展方法是好的做法吗?为什么或为什么不?

有关更多详细信息,第 3 方库是 DevExpress,我想编写的扩展方法将禁用对他们的特定控件的所有自定义和编辑。

所以不用写

barManager.AllowCustomization = false;
barManager.AllowMoveBarOnToolbar = false;
barManager.AllowQuickCustomization = false;
barManager.AllowShowToolbarsPopup = false;
barManager.AutoSaveInRegistry = false;
foreach (Bar bar in barManager.Bars)
{
bar.OptionsBar.DrawDragBorder = false;
}

我会写

barManager.DisableEditing();

最佳答案

是的,您绝对可以那样做。由于扩展方法只是 static 方法的语法糖,并且由于您想构建一些静态辅助方法来配置对象的给定实例,因此这是有道理的。

为了完整性,控制配置有时使用与流畅接口(interface)关联的扩展方法来完成:

public static class DataGridExtensions
{
public static DataGrid AllowColumnConfiguration(this DataGrid grid)
{
// Add NRE check
grid.CanUserResizeColumns = true;
grid.CanUserSortColumns = true;
grid.CanUserReorderColumns = true;

return grid;
}

public static DataGrid AllowEdition(this DataGrid grid)
{
// Add NRE check
grid.CanUserAddRows = true;
grid.CanUserDeleteRows = true;

return grid;
}
}

所以你可以这样使用它:

var grid = new DataGrid()
.AllowColumnConfiguration()
.AllowEdition();

关于c# - 仅使用扩展方法来设置默认属性是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com