2014-04-07 103 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