是否有人知道任何命名约定规则/指南规定何时使用“To”前缀(myVariable.ToList()
),“As”前缀(myVariable.AsEnumerable()
)或“Get”前缀(myVariable.GetHashCode()
)?
答案 0 :(得分:15)
我认为没有惯例,所以只要使用最适合你所做的事情。
iterators
答案 1 :(得分:3)
我的理解/惯例:
“要”执行转换;根据源中固有的数据,在内存中创建一个新对象。
“as”执行演员表演;传入的相同引用在不同类型的“掩码”后面返回。
“Get”几乎可以执行任何其他内容,其主要产品是转换后的结果。获取可以执行计算,返回子项,从存储中检索数据,从默认状态实例化对象等。并非所有此类方法都必须命名为“Get”,但大多数方法都用于计算,实例化,投影或以其他方式转换,然后返回产品,因为它们的主要目的是“吸气剂”。
答案 2 :(得分:1)
myObj
与List
无关时,请在“To”前加上转换。myObj
是Enumerable
的子类时,前缀为“As”以将其作为Enumerable myObj
与List
无关时,但它组成/可以撰写List
使用“获取”前缀答案 3 :(得分:0)
如果您在数据库上使用Entity Framework进行CRUD操作,那么使用.ToList()将在那里执行您的查询,而不是使用AsEnumerable(),它将使用延迟执行,直到您实际尝试访问记录。
这就是我想到的那个。
答案 4 :(得分:0)
As
是对现有数据的重新解释。 AsEnumerable
什么也没做。它实现为return input;
。
To
意味着转化。
Get
并不意味着任何前者。
您将找到与这些规则有效的偏差。他们不是一成不变的。
答案 5 :(得分:0)
我会说To
vs As
更多地与class
与interface
当你真的想要返回实现接口的东西时,你会说AsEnumerable
。
ToList
返回新对象,它表示当前对象的当前状态,即ToDictionary
只是表示相同数据的另一种方式。
第三个Get
方法返回对象的某些属性或某些属性的状态,而不是完整状态。