gpt4 book ai didi

sql - LINQ 查询 : SQL-style abbreviations or spell it out?

转载 作者:行者123 更新时间:2023-12-04 13:05:01 25 4
gpt4 key购买 nike

Microsoft 非常清楚 .NET“标识符”或“参数”不应包含缩写。直接来自马口:

To avoid confusion and guarantee cross-language interoperation, follow these rules regarding the use of abbreviations:

  • Do not use abbreviations or contractions as parts of identifier names. For example, use GetWindow instead of GetWin.
  • Do not use acronyms that are not generally accepted in the computing field.
  • Where appropriate, use well-known acronyms to replace lengthy phrase names. For example, use UI for User Interface and OLAP for On-line Analytical Processing.
  • When using acronyms, use Pascal case or camel case for acronyms more than two characters long. For example, use HtmlButton or htmlButton. However, you should capitalize acronyms that consist of only two characters, such as System.IO instead of System.Io.
  • Do not use abbreviations in identifiers or parameter names. If you must use abbreviations, use camel case for abbreviations that consist of more than two characters, even if this contradicts the standard abbreviation of the word.

- http://msdn.microsoft.com/en-us/library/141e06ef%28VS.71%29.aspx


但是,如果您看一下 MSDN 自己的 101 LINQ Samples page ,你会发现大量这样的例子......

var productNames =
from p in products
select p.ProductName;

...很少(没有?)像这样...

var productNames =
from product in products
select product.ProductName

...但是在其他 MSDN 页面上,您会找到说明问题的示例(例如,http://msdn.microsoft.com/en-us/library/bb384065.aspx)。

讨论

对此,我的心情很复杂。使用 intellisense,拼出所有内容并不是一件难事,但我不确定它是否有太多优势。它更具可读性还是更少?为了清晰起见,您有点权衡冗长。 SQL 程序员似乎与表名的简短缩写相处得很好,但话又说回来,程序员过去也使用匈牙利表示法生存,而且这已被很好地证明是一个坏主意。

那么,有几个问题:

  1. 关于是否应缩写 LINQ 查询是否有任何官方指南?
  2. 您的特别偏好是什么?为什么?

最佳答案

我想你可以说范围变量并不真正遵循与其他标识符相同的规则,因为它的范围完全限于查询表达式。 “p”的含义更明显一些,因为您永远不会在 from p in products 的上下文之外查看它。

我的偏好——也许我不应该承认这一点——只是使用“p”。老实说,我根本不明白对只能在一个语句中使用的东西进行描述性命名有什么意义。

假设您正在编写一个 lambda 表达式。你会写:

products.Where(p.ProductID == productID).Select(p => p.ProductName)

products.Where(product.ProductID == productID).Select(product => product.ProductName)

我实际上发现第一个版本更具可读性,但也许这只是个人偏好。

关于sql - LINQ 查询 : SQL-style abbreviations or spell it out?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com