2014-04-07 69 views
0

我用变量命名(LINQ谓词)

for(int i = ...) 
    for(int j = ...) 
     for(int k = ...) 

如果超过2个嵌套索引,然后我给他们中的一些专有名词(itemobjparentwindow等)。


然后我用用e事件,事件参数和异常:

try { ... } catch (Exception... e) 

如果例外是内部事件,然后我用ee变量。


但linq怎么样?我看到一些民族使用

blablabla.Any(i => i.Value == SomeValue); 

bla.Where(u => u.Something == Something); 

有命名内部谓词或仅意见变量的任何标准?还是仅仅是我? = D

+2

没有标准,只是使用适合你的东西。 –

+0

我使用'x =>'。我不知道为什么这么做;) –

+0

只是一致。只要你保持一致,我就没有看到任何长名称的理由。出于很好的理由,长名称在很多代码标准中都是必需的,但在LINQ中,名称的上下文非常接近以至于短的一致名称更具可读性。 – Holstebroe

回答

2

通常的做法是使用单个字母,该类型的第一个字母c代表customers,p代表products。我使用x很多,当我输入lambda时使用x,但通常会重构为与收集项目相匹配的描述性名称或单个字母。

如果它不仅仅是一个简单的拉姆达,请考虑一如既往地使用适当的描述性变量名称。

最终目标是使代码可读。如果您觉得简单的x可读,请使用x。如果您觉得给全名更具可读性,请使用全名。

+0

不错的提示,谢谢!这正好说明了一点,我自己对“i”或“x”感觉不好。如果'c'被用来代替顾客名单,那么它就更具可读性,那么它就会失明'x'。 – Sinatr

+0

我更喜欢在类型的第一个字母上使用“x”。上下文就在你的面前,所以“x”只是你需要解释的信息少一点,这使得我更容易阅读。 – Holstebroe

+0

其实,现在我看到'o'(object)是一个非常有效的名字。它很短,独特,在很多场景中都很有意义。 – Sinatr

1

让我展开上面的评论。我对一些LINQ查询使用常识,例如

bool hasExpiredItems = items.Any(item => item.IsExpired());

如果我有一个复数的集合名称,然后,在这个例子中与Any(),我用的是单数item。这不是一个规则,只是使用你认为有意义的东西。

编辑:

哎呀,我的例子是错误的。已更新它。

+0

但是......不会编译;) –

+0

'item'在很多地方都是很好的简称,包括linq。 – Sinatr