API:C#方法命名约定:GetPageCount或GetTotalPages

本文关键字:GetTotalPages GetPageCount 方法 API 命名约定 | 更新日期: 2023-09-27 17:58:04

我有一个接口IPager

public interface IPager
{
    int RecordCount { get; }
    int PageNumber { get; }
    int PageSize { get; }
}
public static class PagerExtensions
{
    public static int GetPageCount(this IPager pager)
    {
        var totalPages = pager.RecordCount / pager.PageSize;
        if (pager.RecordCount % pager.PageSize > 0)
            totalPages += 1;
        return totalPages;
    }
}

GetTotalPages听起来比GetPageCount更传统吗?

API:C#方法命名约定:GetPageCount或GetTotalPages

对我来说,GetPageCount听起来更好,因为它更接近于Linq扩展的x.Countx.Count()等代码的常用用法。

因此,它清楚地解释了自己。Get-如中所示,返回一些内容。Page-有问题的变量,Count-与方法中一样,当将返回值应用于有问题的变数时,会返回谁的返回值。

一般来说:选择最有意义的名称。

在这种情况下,我将使用GetPageCount,因为它是自我描述的,并且还暗示了类型int,而GetTotalPages也可以返回类似IEnumerable<Page>的内容。

GetPageCount也遵循以下顺序:

  • 它是一个getter/setter吗?->获取
  • 一般来说,获取/设置是什么?->页码
  • 获取/设置的具体内容是什么?->计数

此订单使您更容易找到要查找的内容。

为什么不简单地使用Count()

您已经扩展了实现IPager的东西,该方法可能不需要进一步扩展页面。

List<T>的情况下,您得到的是Count,而不是GetTCount()

这确实是个人喜好。如果您将IPager interface实现为不同的类型,而实际上不是Page,该怎么办?

代码应该是"自文档化的",所以使用任何描述其功能的名称都是可以的。只要下一个来的人在没有阅读1000页文档的情况下理解你的想法,你就完成了你的工作。

老实说,我认为没有太大区别。使用你或你的公司喜欢的任何东西。