以不同的角度扩展Method names for getting data。
我有一系列GetData方法,它们以各种形式返回数据。我想知道用这些方法命名的最佳方法,精确有效。
答案 0 :(得分:2)
在C#中,不能只有返回类型不同的方法重载。因此,您需要唯一的名称。
我建议根据返回的内容使用命名。这也将使API在通过intellisense使用时更加清晰。我还使用比“数据”更具体的名称 - 例如,如果方法是检索代表客户的数据,我会使用:
public DataTable GetCustomerTable() {
public List<Customer> GetCustomers() {
public DataSet GetCustomerDataSet() {
public Customer GetCustomer(int id) {
// I'd question whether these really belong at all...
public DataTable GetCustomerAsTable(int id) {
public DataSet GetCustomerAsDataSet(int id) {
答案 1 :(得分:1)
命名是非常主观的,但在我看来,要有“好名字”要遵循两件事。
这两个原则对维护很重要;如果你有一堆名为GetData
的方法,人们就不会知道会发生什么,并且会浪费时间阅读文档以找到适当的重载。
您还希望拥有代表您所处抽象级别的名称。所以,假设您想要获得一些名为Page
的实体。在DAO级别,它可以很容易地public DataTable GetPagesTable();
,因为您正在处理表格。在更高的抽象级别,使用List,您可以将其更改为public List GetPages();
(从名称中删除表)。你离数据库很远,所以名字应该反映出来。
如果您传递的是对象或ID,请在方法名称中清楚地说明,以避免任何意外,例如public DataTable GetPagesFromId(int id);
从你的例子中,我可能最终得到类似的东西:
public DataTable Get<TableName>Table() - returns the data from a given table
public List Get<ObjectName>s() - returns the data in the form of List of objects
public DataSet Get<ComposedObjectName>() - returns the data when there are multiple data tables associated with queries
public objectx Get<ObjectName>(objecty) - returns selected object
public DataSet Get<ObjectName>AsMasterChild(objecty) - returns selected object (ex: in case of master-child)