. net方法命名:何时使用XXXFor,何时使用GetXXX

本文关键字:何时使 XXXFor GetXXX 方法 net | 更新日期: 2023-09-27 18:11:47

当使用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。你觉得呢?

. net方法命名:何时使用XXXFor,何时使用GetXXX

我认为"流畅"类型的语法是为了让东西更容易读,所以你要问自己的最重要的事情是哪种语法最能传达你的代码在做什么。

同样,如果您只是从实体类中检索数据,您可以考虑使用扩展方法。

public static int GetKey(this object entity)
{
    ....
}

那么你可以简单地调用

someEntity.GetKey();

然后你可以更进一步,让你所有的实体从一个公共接口继承,并将你的扩展方法更改为:

public static int GetKey(this IEntity entity)
{
   ...
}

我可能误解了您正在检索的内容,但如果它是关于特定对象的某种数据或元数据,那么在作为数据来源的对象上调用方法通常对我来说更清楚。

在MVC中,xxxFor方法不仅仅是一个命名约定。该后缀表明该方法对模型的属性进行操作。

Html.TextBoxFor(m => m.FirstName);

Html.TextBox("FirstName", @Model.FirstName);

还要注意,这些不是"c#方法"。这些是。net方法,是ASP的一部分。净MVC。如果您使用VB.NET,则它们的命名完全相同。