2011-10-06 125 views
7

傳統上,我使用VB.NET,但已被要求在C#中編寫最新的項目。Visual Studio 2010 - C#編輯器比VB.NET編輯器更笨重

這很好,因爲我可以用任何一種語言工作,過去不得不經常將C#代碼翻譯成VB,而且我也沒有任何疑慮。

我的問題是使用Visual Studio編輯器以及在編寫VB.NET代碼時,傳統上爲我自動執行的任務有多少在編寫C#代碼時丟失了,或者涉及到大量的按鍵。

例如,創建一個新的#區域或功能...

在VB.NET中創建一個區域涉及打字 + [R,在這點智能感知踢,並顯示我#Region。我按空間#Region是自動完成的,因此允許我鍵入區域名稱,然後單擊輸入並自動添加結束#End Region

在C#中,I型 + [R ...和虛無縹緲。我必須單擊按Ctrl +ķ + X和片段來實現的列表中選擇#Region同樣的效果。

同樣,當在VB.NET中編寫函數時......自動完成在幾秒鐘內創建結構,而C#則涉及到必須手動添加括號等,爲開發過程增加寶貴的秒數。 (也許還有另一個快捷鍵組合)

這些只是兩個例子,但還有很多其他地方,VB.NET編輯器提供的快捷方式使得編碼速度比C#編輯器快得多。 實際上,我感到非常震驚,因爲C#經常被稱讚比VB.NET「更好」。

反正咆哮過來。

我的問題是,是否有任何插件允許以與提供給VB.NET編輯器相同的方式自動完成C#編輯器?

+0

我相信Visual Studio VB.NET團隊中的人員會在該團隊未查找時關閉C#端的功能。聽到很多關於這種看似簡單的事情的咆哮。 –

+2

在c#中,如果您鍵入#region並點擊選項卡,它會插入#endregion並將光標置於編輯框中以輸入名稱。此外,您可以選擇文本行,右鍵單擊並選擇'Surround with ...',#region是其中一個選項。所以它可能與VB編輯器有點不同,但不是那麼多。對於方法,只需創建一個代碼片段,然後您可以鍵入片段並點擊Tab以完全展開它。 –

回答

10

Resharper ............................................. ............................................. ............................

+0

看起來可能會伎倆..明天早上將試用。謝謝! (如果它的工作將標記問題爲答案):) – Peter

2

聽起來像你需要做一些挖掘工具...選項>文本編輯器> C#並檢查那裏的配置。有些事情可以從那裏進行調整,如果您在開始時將環境設置爲VB.NET,則可能會錯過。

您也可以查看Visual Studio Power Tools,它有一些額外的自動完成支架選項可用,以及其他一些可能有用的功能。

+0

我看了一下週圍的選項好吧,所有相關的似乎勾選,但沒有(我可以看到反正)是用於複製的功能類型前面提到過。 – Peter

+0

我的apoligies,我認爲括號可以在一些選項中完成和自動插入的選項下配置。 Ctrl-K,X代表片段包含一些區域項目和您提到的其他項目。但是,是的,它肯定缺少了一些 –

3

我認爲你只是習慣於在VB.NET編碼。至於你對C#被視爲優於VB.NET的評論,我認爲你需要區分語言和編輯器,因爲它們並不是固定在一起的。

C#可能不提供與VB相同的自動完成功能。NET的確如此,但我認爲生產力歸結爲語言的舒適度。即使沒有這些自動完成功能,我可以在C#中編寫比在VB.NET中快得多的代碼,這是因爲我習慣了C#的行爲方式,並且我知道如何使用編輯器進行流動。

在我的真實想法,我想你需要習慣在C#編碼,然後才能對任一語言影響您的工作效率編碼的真實評價。

編輯

如果你正在尋找免費的那堪比ReSharper的東西,我建議考慮看看CodeRush Xpress。還有一個全功能的CodeRush版本,比Resharper便宜100美元左右。

0

我的CodeRush從DevExpress大的支持者,供應在很大程度上類似的目的ReSharper的。在Code Rush中,如果我想放入一個區域,我選擇我想要區域化的代碼並按下Ctrl-3,然後使用區分名稱上的插入符號創建區域,然後鍵入。它的行爲也非常可以配置所有的模板(就像類似VS代碼片段一樣)。

完全披露,但 - 這是一種投資,因爲Express版本具有非常小的功能Visual Studio 2010中您也願意做這個或ReSharper的 - 也許不能同時使用。我有一次安裝,我似乎記得他們沒有很好地一起打球。

2

ReSharper對Visual Studio已經爲VB.NET免費提供的C#有很多功能。

1

這裏有一個代碼片段插入一個私有方法:

<?xml version="1.0" encoding="utf-8" ?> 
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
     <Header> 
      <Title>Private Method</Title> 
      <Shortcut>pvtm</Shortcut> 
      <Description>Code snippet for a private method</Description> 
      <Author>Your Name Here</Author> 
      <SnippetTypes> 
       <SnippetType>Expansion</SnippetType> 
      </SnippetTypes> 
     </Header> 
     <Snippet> 
      <Declarations> 
       <Literal> 
        <ID>type</ID> 
        <ToolTip>Return Type</ToolTip> 
        <Default>void</Default> 
       </Literal> 
       <Literal> 
        <ID>name</ID> 
        <ToolTip>Method name</ToolTip> 
        <Default>MyMethod</Default> 
       </Literal> 
      </Declarations> 
      <Code Language="csharp"><![CDATA[private $type$ $name$() 
    { 
     $selected$ $end$ 
    } //end method $name$]]> 
      </Code> 
     </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 

我敢肯定,這可以改善,但你可以只輸入pvtm並按下Tab鍵,瞧!你會得到一個完整的方法。再次,不像VB編輯器一樣,但非常接近。有些人可能會說更好。

這是一個古老的片斷,我認爲它會在VS2010工作,但我還沒有嘗試過。