“To”vs“As as”vs“Get”方法前缀

时间:2012-12-13 20:22:08

标签: c# .net vb.net

是否有人知道任何命名约定规则/指南规定何时使用“To”前缀(myVariable.ToList()),“As”前缀(myVariable.AsEnumerable())或“Get”前缀(myVariable.GetHashCode())?

6 个答案:

答案 0 :(得分:15)

我认为没有惯例,所以只要使用最适合你所做的事情。

  • “To”创造新事物/转换它
  • “As”只是对同一个f.e的“不同观点”。使用iterators
  • “获取”是其他一切的吸气剂

答案 1 :(得分:3)

我的理解/惯例:

“要”执行转换;根据源中固有的数据,在内存中创建一个新对象。

“as”执行演员表演;传入的相同引用在不同类型的“掩码”后面返回。

“Get”几乎可以执行任何其他内容,其主要产品是转换后的结果。获取可以执行计算,返回子项,从存储中检索数据,从默认状态实例化对象等。并非所有此类方法都必须命名为“Get”,但大多数方法都用于计算,实例化,投影或以其他方式转换,然后返回产品,因为它们的主要目的是“吸气剂”。

答案 2 :(得分:1)

  1. myObjList无关时,请在“To”前加上转换。
  2. myObjEnumerable的子类时,前缀为“As”以将其作为Enumerable
  3. myObjList无关时,但它组成/可以撰写List使用“获取”前缀

答案 3 :(得分:0)

如果您在数据库上使用Entity Framework进行CRUD操作,那么使用.ToList()将在那里执行您的查询,而不是使用AsEnumerable(),它将使用延迟执行,直到您实际尝试访问记录。

这就是我想到的那个。

答案 4 :(得分:0)

As是对现有数据的重新解释。 AsEnumerable什么也没做。它实现为return input;

To意味着转化。

Get并不意味着任何前者。

找到与这些规则有效的偏差。他们不是一成不变的。

答案 5 :(得分:0)

我会说To vs As更多地与classinterface

等差异有关

当你真的想要返回实现接口的东西时,你会说AsEnumerable

相反的

ToList返回新对象,它表示当前对象的当前状态,即ToDictionary只是表示相同数据的另一种方式。

第三个Get方法返回对象的某些属性或某些属性的状态,而不是完整状态。

相关问题