2010-02-15 6 views
9

Tôi muốn viết một đoạn mã Visual Studio cho phép tôi để nhanh chóng tạo ra một lớp có dạng:Visual Studio: Có thể xác định các chức năng tùy chỉnh để sử dụng trong Đoạn mã của riêng mình không?

public SomeClass 
{ 
    public SomeType SomeProperty { get; private set; } 
    public SomeClass(SomeType someProperty) { SomeProperty = someProperty; } 
} 

Tôi muốn các thông số trên các nhà xây dựng phải có cùng tên với tài sản, nhưng-cased thấp . Tôi không muốn phải gõ tên hai lần. Làm cách nào để thực hiện việc này?

Tôi đã xem xét XML cho các đoạn trích và tôi phát hiện ra rằng có một số chức năng nhất định có thể được sử dụng. Ví dụ, được xây dựng trong đoạn "chuyển đổi" mã chứa các hướng dẫn sau đây:

<Function>GenerateSwitchCases($expression$)</Function> 

Theo this MSDN documentation page, có ba tích hợp các chức năng mà bạn có thể sử dụng trong <Function> thẻ này. Thật không may, không ai trong số họ làm những gì tôi muốn (chữ thường chữ cái đầu tiên). Có thể định nghĩa một hàm mà tôi có thể sử dụng trong đoạn mã của mình không?

+0

Man, tôi chỉ cố gắng làm gần như chính xác những điều tương tự ! Argh! –

+0

xem câu trả lời này: http://stackoverflow.com/questions/5663569/c-custom-code-snippet-functions – ballombert

Trả lời

5

Không thể thực hiện điều này trong Visual Studio ngay hôm nay. Việc định nghĩa và thực hiện các hàm đoạn mã được kiểm soát trực tiếp bởi dịch vụ ngôn ngữ C#. Nó hiện không phải là một điểm mở rộng. Nó đang được xem xét cho một phiên bản tương lai của sản phẩm mặc dù.

+0

Có phải không? Bạn có chắc không? Có một nhận xét về một bài viết của Microsoft Connect cho biết đây được coi là "cho phiên bản tiếp theo", nhưng nhận xét đó là từ năm 2005 và đã có hai phiên bản tiếp theo kể từ ... – Timwi

+0

@Timwi, chắc chắn 100%. – JaredPar

+0

Để rõ ràng, nhận xét của tôi đã đề cập đến câu cuối cùng của bạn, trong đó bạn tuyên bố "Nó đang được xem xét cho một phiên bản trong tương lai". Tôi không tin rằng đây là trường hợp. – Timwi

-3

Kiểm tra bài viết này vào việc tạo ra một đoạn mã xác định biến có thể được sử dụng nhiều lần và đã được đánh máy một lần duy nhất: http://www.switchonthecode.com/tutorials/csharp-tutorial-visual-studio-code-snippets

<Snippet> 
    <Declarations> 
    <Literal> 
     <ID>startTime</ID> 
     <ToolTip>Beginning Time Variable</ToolTip> 
     <Default>startTime</Default> 
    </Literal> 
    <Literal> 
     <ID>message</ID> 
     <ToolTip>Replace This With Your Description</ToolTip> 
     <Default>My function</Default> 
    </Literal> 
    <Literal Editable="false"> 
     <ID>DiagnosticsDebug</ID> 
     <Function> 
     SimpleTypeName(global::System.Diagnostics.Debug) 
     </Function> 
    </Literal> 
    </Declarations> 
    <Code Language="CSharp"> 
    <![CDATA[ 
    long $startTime$ = Environment.TickCount; 
    $selected$ $end$ 
    $DiagnosticsDebug$.WriteLine(String.Format(
     "$message$ took {0} ticks.", Environment.TickCount - $startTime$)); 
    ]]> 
    </Code> 
</Snippet>