2012-01-20 18 views
5

我們在代碼以下循環:C#的關鍵字樣的變量

foreach (var event in events) 
{ 
... 
{ 

cources我們不能說出變量「事件」,因爲它是一個關鍵字。哪種方式更適合這種情況:使用@prefix(@event)還是使用其他名稱,如「currentEvent」?

+1

我個人將其重構爲更具描述性,但如果我正在做像P/Invoke綁定之類的東西,並且一個參數被稱爲'event',爲了與原始方法保持一致,我將使它成爲'@ event'。 –

回答

15

絕對使用其他名稱。

關鍵字變量是C#的一個非常酷的功能,但它們應該用於互操作性。

3

因爲@前綴非常罕見,所以可能會讓其他開發人員感到困惑。我建議在這裏使用另一個變量名稱。

當名稱是公共接口的一部分時,它是不同的。在這種情況下,即使它是關鍵字,也要使用正確的名稱。但是,如果你這樣做,你會讓那些想使用你的界面的人很難,因爲他們必須在任何地方使用@

1

就我個人而言,我會建議根據其上下文和它代表的內容命名它。如果它表示要執行的事件,我可能會將其命名爲executableEvent,作爲示例。或者,如果您只是在本地使用它來調用每個事件 - 例如 - 給它一個縮寫版本的名稱(如evt)可能是可以接受的。通常我會投票反對這種命名慣例,但如果它只是暫時的,當地的其他人可能會認爲它很好。

1

我個人不喜歡使用@和_作爲前綴,只是爲了能夠使用關鍵字。我認爲,在大多數情況下,你可以將其重命名,或者:

foreach (var uiEvent in uiEvents) 
{ 
... 
{ 

(更具體)

foreach (var evt in events) 
{ 
... 
{ 

(某種速記)

+0

是的,避免'@'。它被用作其他地方的前綴,可能會混淆人。我;我忽略了一個元音:'foreach(var evnt in events)' – BaBu

5

我會通常使用前綴@反衝。 (我有時用它來命名擴展方法中的第一個參數@this,但即使這也很罕見。)

看看您是否可以想到任何其他描述事件的方式。例如,是否是特定的種類的事件?

1

我會用e_eventcurrentEvent

0

我真的勸你不要使用@所以你要選擇另一個名稱。就像有人說的,你可以輸入你的名字到一個更具體的事件類型