2011-10-06 69 views
7

Tôi thường làm việc trong VB.NET, nhưng đã được yêu cầu mã hóa dự án mới nhất trong C#.Visual Studio 2010 - Trình soạn thảo C# cồng kềnh hơn trình soạn thảo VB.NET

Điều này là tốt khi tôi có thể làm việc bằng một trong hai ngôn ngữ, phải thường xuyên dịch C# code sang VB trong quá khứ và tôi cũng không hề lo ngại về việc phát triển.

Vấn đề của tôi là với trình chỉnh sửa Visual Studio và số lượng tác vụ được tự động hóa cho tôi khi viết mã VB.NET bị thiếu khi viết mã C# hoặc có nhiều khóa bấm phím hơn.

Ví dụ, tạo ra một #region hoặc chức năng mới ...

Trong VB.NET tạo ra một khu vực liên quan đến gõ # + r, lúc này đá điểm IntelliSense trong và chỉ cho tôi #Region. Tôi nhấn không gian#Region được tự động hoàn thành, do đó cho phép tôi nhập tên khu vực, sau đó nhấp vào Nhập và đóng #End Region được thêm tự động.

Trong C#, tôi gõ # + r ... và nada .. tôi phải hoặc bấm tổ hợp phím Ctrl + k + x và chọn #Region từ danh sách các đoạn để đạt được cùng một hiệu ứng.

Tương tự khi viết hàm trong VB.NET ... tự động hoàn thành tạo cấu trúc trong vài giây, trong khi C# liên quan đến việc phải thêm dấu ngoặc vv, thêm giây quý vào quy trình phát triển. (hoặc có thể có một tổ hợp phím tắt khác)

Đây chỉ là hai ví dụ, nhưng có nhiều ví dụ khác trong đó trình soạn thảo VB.NET cung cấp mã hóa nhanh hơn nhiều so với trình soạn thảo C#. Tôi thực sự bị sốc vì C# thường được khen ngợi vì "tốt hơn" so với VB.NET.

Dù sao đi nữa.

Câu hỏi của tôi là, có bất kỳ plugin nào cho phép tự động hoàn tất trên trình soạn thảo C# theo cách tương tự như được cung cấp cho trình soạn thảo VB.NET không?

+0

Tôi tin rằng những người trong nhóm Visual Studio VB.NET sẽ vào và tắt các tính năng ở phía C# khi nhóm đó không tìm kiếm. Lắng nghe rất nhiều rants về những gì có vẻ đơn giản như thế này. –

+2

Trong C# nếu bạn gõ #region và nhấn tab, nó chèn #endregion và đặt con trỏ vào hộp soạn thảo để nhập tên. Ngoài ra, bạn có thể chọn dòng văn bản, nhấp chuột phải và chọn 'Bao quanh bằng ...' và #region là một trong các tùy chọn. Vì vậy, nó có thể là một chút khác nhau so với trình soạn thảo VB, nhưng không phải là nhiều. Đối với các phương thức, chỉ cần tạo đoạn mã và sau đó bạn có thể nhập đoạn mã và nhấn Tab để mở rộng hoàn toàn đoạn mã đó. –

Trả lời

10

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

+0

trông giống như nó có thể làm các trick .. sẽ thử nó vào sáng ngày mai. Cảm ơn! (và nếu nó hoạt động sẽ đánh dấu câu hỏi là đã trả lời) :) – Peter

2

Có vẻ như bạn cần thực hiện một số thao tác xung quanh dưới Công cụ ... Tùy chọn> Trình chỉnh sửa văn bản > C# và kiểm tra cấu hình ở đó. Một số điều có thể được điều chỉnh từ đó có thể đã bị bỏ lỡ nếu bạn cấu hình nếu bạn thiết lập môi trường của bạn như VB.NET ban đầu.

Bạn cũng có thể xem xét Visual Studio Power Tools có một số tùy chọn khung tự động hoàn thành bổ sung sẵn có, cũng như một số tính năng khác có thể trợ giúp.

+0

Tôi đã nhìn xung quanh các tùy chọn, và tất cả các tùy chọn có liên quan dường như được chọn, nhưng không có gì (mà tôi có thể thấy) là để nhân rộng các loại chức năng tôi đã được đề cập trước đó. – Peter

+0

Những lời hứa của tôi, tôi nghĩ rằng các khung được cấu hình theo các tùy chọn để hoàn thành và tự động chèn vào một số tùy chọn, tôi nghĩ vậy. Ctrl-K, X cho Đoạn trích có một số mục trong vùng và các mục khác mà bạn đã đề cập. Nhưng có, nó chắc chắn thiếu một vài –

3

Tôi nghĩ bạn đã quen với việc viết mã trong VB.NET. Đối với bình luận của bạn về C# được xem là cao hơn VB.NET, tôi nghĩ rằng bạn cần phải làm cho một sự khác biệt giữa ngôn ngữ và biên tập viên, bởi vì hai không thực sự gắn liền với nhau.

Có thể C# không cung cấp cùng các tính năng tự động hoàn thành mà VB.NET, nhưng tôi nghĩ rằng năng suất đi xuống đến mức độ thoải mái của bạn với ngôn ngữ. Ngay cả khi không có các tính năng tự động hoàn thành, tôi có thể mã hóa nhanh hơn rất nhiều trong C# so với trong VB.NET, và đó là vì tôi đã quen với cách C# hoạt động, và tôi biết cách làm việc với trình soạn thảo.

Theo ý kiến ​​trung thực của tôi, tôi nghĩ bạn cần làm quen với việc viết mã trong C# trước khi bạn có thể đánh giá đúng cách viết mã bằng ngôn ngữ hoặc tác động đến năng suất của bạn.

EDIT

Nếu bạn đang tìm kiếm cái gì miễn phí đó là so sánh với Resharper, tôi sẽ đề nghị tham gia một cái nhìn tại CodeRush Xpress. Ngoài ra còn có một phiên bản đầy đủ tính năng của CodeRush mà bán lẻ khoảng $ 100 rẻ hơn Resharper.

0

Tôi là người đề xuất lớn CodeRush từ DevExpress, phục vụ cho mục đích tương tự để Resharper. Trong Code Rush, nếu tôi muốn đặt trong một khu vực, tôi chọn mã tôi muốn khu vực tắt và nhấn Ctrl-3, và khu vực được tạo ra với một dấu mũ trên tên khu vực mà sau đó gõ vào. Hành vi của nó cũng rất có thể cấu hình liên quan đến tất cả các mẫu của nó (giống như đoạn mã VS trên đoạn mã).

Tiết lộ đầy đủ, mặc dù - đó là khoản đầu tư vì phiên bản nhanh có rất ít chức năng như Visual Studio 2010. Bạn cũng có thể thực hiện điều này hoặc ReSharper - có thể không phải cả hai. Tôi đã có cả hai cài đặt tại một thời điểm và tôi dường như nhớ lại họ không chơi rất độc đáo với nhau.

2

ReSharper thực hiện rất nhiều việc C# mà Visual Studio đã làm cho VB.NET miễn phí.

1

Dưới đây là một đoạn mã để chèn một phương pháp riêng:

<?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> 

tôi chắc chắn rằng nó có thể được cải thiện, nhưng sau đó bạn có thể chỉ cần gõ pvtm và tab và voila hit! Bạn nhận được một phương pháp toàn bộ. Một lần nữa, không giống như trình soạn thảo VB, nhưng khá gần. Một số có thể nói tốt hơn.

Đây là đoạn mã cũ và tôi nghĩ nó sẽ hoạt động trong VS2010, nhưng tôi chưa thử.

Các vấn đề liên quan