2011-06-27 56 views
9

我希望能夠控制在使用Visual Studio的自動生成塊之一時爲事件生成的默認代碼。當前模板如下:是否有可能在Visual Studio中更改自動生成的事件處理程序代碼?

void HandlerName(object sender, HandlerEventArgs e) { 
    throw new NotImplementedException(); 
} 

我想這個更改爲以下:

private void HandlerName(object sender, HandlerEventArgs args) { 
    throw new NotImplementedException(); 
} 

即它是args說法,我總是改變。

UPDATE:此外,我們也在此政策中包含私人成員的評論,因此我的要求的另一個用例是也生成默認評論。

更新2:我現在收回的理由爲希望重命名eargs由於不規範的命名約定的證據,但是我還是想重寫,如果可能的明確的訪問修飾符和默認評論模板。

+2

坦率地說,我希望它自動把'私人'。 –

+0

同意,儘管它對我來說並不重要,因爲private是成員的默認訪問修飾符。由於我傾向於在lambda表達式中使用'e',所以我特別希望'args'而不是'e',特別是希望使用'(s,e)'的lambda事件,儘管我最近更改了'(s,a)'。 –

+3

有一個原因是事件參數參數總是被命名爲「e」。這是一個標準的慣例。NET世界,由所有官方和非官方風格指南推薦,我強烈建議您開始關注它。將其修改爲'args'是非常不規範的,這對於可讀性來說絕對沒有好處。 –

回答

1

我覺得e來自委託簽名(delegate void HandlerEventHandler(object sender, HandlerEventArgs e)),所以也沒有改變委託簽名,你不能改變它...

+0

非常理解推理托馬斯,爲+1。我仍然非常感興趣的方式是讓VS自動格式化,甚至留下'e'的名字。我知道我問的只需要幾秒鐘手動覆蓋,但它仍然是幾秒鐘:) –

0

你是否說你想在創建事件處理程序時更改自動生成的代碼?

我的回答是否定的,但我不確定你爲什麼需要。

+0

我的推理在所提供的示例中進行了說明,但我希望通過還爲處理程序提供默認註釋來進一步擴展它。我們這裏的政策也是對私人成員發表評論。 –

0

在你還是想改變一些東西到自動的情況下生成的事件處理程序的代碼,幾年後,我用Visual Studio的this擴展。

生成更乾淨的事件處理程序名稱非常有用。正如你將會看到的,擴展將不會像txtName_LostFocus那樣生成類似的東西,而會向你建議一個名字如下的方法:OnNameLostFocus。

這有助於擺脫我們通常添加到控件中的下劃線和前綴。該擴展有一個配置屏幕來添加所需的所有前綴。

但我所說的一切對回答您的問題都沒有幫助。這裏有它的幫助 - >在你可以下載的代碼中,你可以看到引擎如何工作來替換事件處理程序方法的名稱,我完全相信你可以找到一個解決方案來重命名你想要的任何參數如果你還想要的話),並且添加一個明確的修飾符。

我會盡力找到解決方案並讓您知道我的進展。

UPDATE: 您還可以使用將自動如果你想增加明確的修改您使用清理引擎誰ReSharper的。

相關問題