使用asp.net mvc时,我们会发现有许多方法以" For"后缀,例如Html.EditorFor(...)
,Html.TextBoxFor(...)
等。这些名称非常直观,我喜欢它们。
我的问题是,何时使用GetXXX(...)
以及何时使用XXXFor(...)
?似乎即使在同一框架中,这种方法的命名仍然不一致。有时使用GetXXX(...)
,有时使用XXXFor(...)
。这有什么命名原则吗?
顺便说一句:
我很好奇这是因为我正在写一个名为EntityKey
的课程。我想在这个类中放两个静态方法。它们是EntityKey.Get(object entity)
和EntityKey.GetKeyProperties(Type entityType)
。但我正在考虑将Get
方法重命名为For
,所以EntityKey.For(object entity)
。如果我将Get
重命名为For
,我认为将GetKeyProperties
重命名为KeyPropertiesFor
会更好。你觉得怎么样?
答案 0 :(得分:2)
我认为“流畅”类型的语法旨在使事情更具可读性,因此您最想要问的问题是哪种语法最能传达您的代码所做的事情。
此外,如果您只是从实体类中检索数据,则可以考虑使用扩展方法。
public static int GetKey(this object entity)
{
....
}
然后你可以简单地调用
someEntity.GetKey();
然后,您可以更进一步,让所有实体都从公共接口继承,并将扩展方法更改为:
public static int GetKey(this IEntity entity)
{
...
}
我可能误解了您正在检索的内容,但如果它是某种特定对象的某种数据或元数据,那么在作为数据源的对象上调用方法通常会让我更清楚。< / p>
答案 1 :(得分:1)
在MVC中,xxxFor
方法不仅仅是命名约定。该后缀表示该方法对模型的属性进行操作。
Html.TextBoxFor(m => m.FirstName);
VS
Html.TextBox("FirstName", @Model.FirstName);
另请注意,这些不是&#34; C#Methods&#34;。这些是.NET方法,是ASP.NET MVC的一部分。如果使用VB.NET,它们的名称完全相同。