C#我可以使用部分类使代码更可读



所以例如,我有此Web API控制器类AdministratorController,并且包含很多任务:

  • 创建
  • 删除
  • 编辑密码
  • 更新
  • 获取
  • 获取全部
  • 等...

现在,我将所有这些任务都包含在1个文件AdministratorController.cs中。但是有了所有评论和注释,文件很长。

是将此控制器拆分为partial class 使搜索特定功能的开发人员更快地到达目标的好方法吗?还是滥用partial关键字例如,我有一个文件夹结构:

  • - 控制器
  • ⠀| - 管理员
  • | ------ iDagishatorCreateController.cs
  • | ------ induranderatorteletecontroller.cs
  • ⠀⠀⠀⠀| -----委员

显然,这是一个自以为是的答案。从技术上讲,是的,您可以。它将编译。

我认为您可以将其分为多个文件,如果它延长了。

您可以有部分课程。或者您只能有多个课程。没有人强迫您将所有这些方法放入一个控制器中。

就个人而言,出于实际原因,我会选择多个类。您可能会进行依赖注入,并且可能是通过构造函数注入来进行的,因为这是默认值。对于部分类,这仅意味着一个大型类,但要多个文件,您现在需要编辑当前文件, plus 构造函数所居住的文件以添加新服务。这也意味着所有方法都需要注入DeleteDataService,尽管只有Delete方法使用它。如果您每个方法有一个控制器,则在同一文件中具有构造函数,其他类不依赖于此。

但是,例如,如果您在方法中通过[FromService]属性进行注入,那么您的两个选择之间几乎没有区别。

如果将它们保存在一个文件中的时间太长是 good ,则将它们构造在不同的文件中。太好了,我认为即使您选择了"错误"的方法,也不会太糟糕。因此,选择对您来说最实用的一个。

这取决于您所说的"可读"。在一定程度上,我们必须阅读一堂课,我们必须阅读的任何内容都不会被放置在单独的文件中。无论哪种方式,都有同样多的阅读。通过单独的文件查找特定成员的部分,这甚至可能是一种滋扰。

部分类可能会让我们感觉,就像我们实际上只是在做更大的课程时正在分开代码。如果我们认为我们通过部分类别制作了更简单的内容,那么他们甚至可以通过鼓励我们将其添加到单个类中的同时将其分为不同的文件来使我们的代码更加难以理解。

我不反对部分班级。这些东西只有在使用它的情况下才存在,我并不是要暗示使用它们的任何人都在滥用它们。一个示例是自动化类,例如当我们添加服务参考时(我们仍然这样做吗?(,我们可能会对该类进行一些修改,但是如果我们更新服务参考并重做自动生成,则它们会丢失。如果我们将自定义代码放在部分类别中,那么我们可以在离开其余部分的同时生成零件。

最新更新