2010-02-15 14 views
9

beni çabuk formun bir sınıf oluşturmak için olanak sağlayan bir Visual Studio pasajı yazmak istiyorum: Ben özelliği olarak aynı ada sahip yapıcı parametre istiyorumVisual Studio: Kişinin kendi kod parçacıklarında kullanmak için özel işlevleri tanımlamak mümkün mü?

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

, ancak daha düşük kasalı . Adı iki kere yazmak zorunda kalmak istemiyorum. Bunu nasıl yaparım?

Zaten snippet'ler için XML'e baktım ve kullanılabilecek bazı işlevler olduğunu keşfettim.

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

this MSDN documentation page göre, bu <Function> etiketine kullanabileceğiniz üç yerleşik işlevler vardır: Örneğin, yerleşik "anahtarı" kod parçacığı aşağıdaki talimat içerir. Ne yazık ki, hiçbiri istediğimi yapmıyor (küçük harfle ilk harf). Snippet'imde kullanabileceğim bir işlevi tanımlamak mümkün mü?

+0

Man, sadece hemen hemen aynı şeyi yapmaya çalışıyordu ! Ahh! –

+0

Bu cevabı bakın: http://stackoverflow.com/questions/5663569/c-custom-code-snippet-functions – ballombert

cevap

5

Hayır, bugün Visual Studio'da bu mümkün değil. Snippet işlevlerinin tanımı ve yürütülmesi doğrudan C# dili hizmeti tarafından kontrol edilir. Şu anda bir genişletilebilirlik noktası değil. Bununla birlikte, ürünün gelecekteki bir sürümü için düşünülüyor.

+0

Peki? Emin misiniz? Bir Microsoft Connect yazısında, bunun bir sonraki sürüm için kabul edildiğini belirten bir yorum var, ancak bu yorum 2005'ten beri ve iki sonraki versiyondan beri var ... – Timwi

+0

@Timwi, 100% sure. – JaredPar

+0

Açıklık getirmek gerekirse, yorumum, "Gelecek sürüm için göz önünde bulundurulduğunu" iddia ettiğiniz son cezanıza başvurmaktaydı. Bu durumun böyle olduğuna ikna oldum. – Timwi

-3

Kontrol dışarı birkaç kez kullanılabilir ve sadece bir kez yazılabilir zorunda değişkenleri tanımlayan bir kod parçacığını oluşturma hakkındaki bu makaleye: 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> 
İlgili konular