重载方法时返回不同类型是不好的做法?

Bur*_*sys 7 .net overloading

鉴于这个例子:

Interface CustomersDao
    Function Get(ByVal Id As Integer) As Customer
    Function Get(ByVal Filter As Filter) As IList(Of Customer)
End Interface

Public Sub Main()
    Dim Customer As Customer = CustomersDao.Get(4)

    Dim Filter As New CustomersDao.Filter
    Filter.Category = 2
    Dim Customers As IList(Of Customer) = CustomersDao.Get(Filter)
End Sub
Run Code Online (Sandbox Code Playgroud)

在同一种方法中返回不同类型是不好的做法吗?

SLa*_*aks 6

我建议打电话给第二个GetAll.

现在,第二种方法返回集合并不明显.
您应该努力确保您的课程尽可能明显,并且不包含任何意外的惊喜.

  • GetAll或GetCustomers,就像提供过滤器一样,可能不会返回"All"... (3认同)