4

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

为这种用途构建扩展方法是一种好习惯吗?为什么或为什么不呢?

有关更多详细信息,第 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();
4

1 回答 1

5

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

只是为了完整起见,控制配置有时使用与流式接口关联的扩展方法来完成:

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();
于 2013-07-19T16:18:31.237 回答