2012-07-26 8 views
6

Zrobiłem mały fragment kodu, aby utworzyć właściwość dla danych WPF bingings:Fragment kodu Visual Studio: jak dodać do niego logikę?

private string property; 
public string Property 
{ 
    get { return this.property; } 
    set 
    { 
     this.property = value; 
     this.OnPropertyChanged(() => Property); 
    } 
} 

Jest to dość kłopotliwe, aby utworzyć nazwę pola w Camel Case i przepisać majątek w Pascal Case. Czy istnieje sposób na zapisanie pola i zezwolenie fragmentowi na pisanie właściwości przy użyciu nazwy pola z pierwszym znakiem pisanym wielkimi literami?

+1

Nazwałbym to zła forma odróżnić publiczne/prywatne oparte tylko na obudowie. – BNL

+0

Co powiecie na nazewnictwo pola 'backingProperty', które jest wielbłądowe i które można skonstruować za pomocą prostego łączenia ciągów? To dodatkowo zmniejsza prawdopodobieństwo, że inny kod w klasie przypadkowo użyje pola zamiast własności. –

+1

Tak, byłoby miło, gdyby istniał sposób na dodanie niestandardowej logiki do właściwości automatycznych, ale tak nie jest. Wspominasz fragment kodu programu Visual Studio - zawsze możesz utworzyć niestandardowy fragment kodu, który zawiera logikę, której pragniesz. Osobiście piszę wystarczająco szybko, że nie warto się martwić takimi drobnymi przykrościami. –

Odpowiedz

8

Niestety ten typ logiki nie jest dostępny w funkcji fragmentów kodu Visual Studio. Konieczność wpisania obu nazw jest najlepsza.

Oto tylko "funkcje" dostępne podczas tworzenia fragmentu kodu. MSDN Code Snippet Functions

Produkty takie jak Resharper zapewniają doskonałą fragment kodu (tzw Szablony w Resharper) funkcjonalności, z możliwością zmiany obudowy innych zamienników we fragmencie, wśród wielu innych przydatnych funkcji. Resharper Template Info

Na przykład, byłbyś zainteresowany tą makro:

„Wartość innej zmiennej z pierwszego znaku małymi literami”

+0

Tanim rozwiązaniem jest posiadanie w opisie dwóch właściwości, z których jedna zaczyna się od małej i jednej wielkiej litery (http://stackoverflow.com/a/164729/1072869) – Aralox

Powiązane problemy