2011-06-27 12 views
9

Chciałbym móc kontrolować domyślny kod wygenerowany dla zdarzenia, gdy korzystam z jednego z automatycznie generowanych bloków programu Visual Studio. Obecny szablon jest następujący:Czy jest możliwa zmiana wygenerowanego automatycznie kodu obsługi zdarzeń w visual studio?

void HandlerName(object sender, HandlerEventArgs e) { 
    throw new NotImplementedException(); 
} 

Chciałbym to zmienić na następujące kwestie:

private void HandlerName(object sender, HandlerEventArgs args) { 
    throw new NotImplementedException(); 
} 

Mianowicie jest to argument args że zawsze zmienić.

UPDATE: Nawiązując do tego jest polityka, że ​​także tutaj komentarzy dla prywatnych użytkowników, a tym samym inny use-case dla mojego wymogiem jest również wygenerować domyślny komentarz.

UPDATE 2: I teraz wycofać rozumowanie dla chcących zmienić nazwę e do args powodu dowodów niestandardowym konwencji nazewnictwa, jednak nadal chciałby zastąpić szablonu, jeśli możliwe jednoznaczne dostępu modyfikatorów i domyślnych komentarzy .

+2

Szczerze mówiąc, chciałbym, aby automatycznie wstawił "prywatny". –

+0

Zgadzam się, chociaż nie jest to dla mnie tak ważne, ponieważ prywatne jest domyślnym modyfikatorem dostępu dla członków. W szczególności chciałbym użyć 'args' zamiast' e', ponieważ często używam 'e' w wyrażeniach lambda, szczególnie w zdarzeniach lambda, w których' (s, e) 'jest pożądane, chociaż ostatnio zmieniłem na '(s, a)'. –

+3

Istnieje powód, dla którego parametr argumentów zdarzenia ma zawsze nazwę "e". Jest to standardowa konwencja w.Świat NET, zalecany przez wszystkie oficjalne i nieoficjalne przewodniki stylów, i radzę, abyś zaczął go śledzić. Modyfikowanie go do 'args' jest dość niestandardowe, co szkodzi czytelności bez żadnych korzyści. –

Odpowiedz

1

myślę e pochodzi z podpisem delegata (delegate void HandlerEventHandler(object sender, HandlerEventArgs e)), więc nie można go zmienić bez zmiany podpisu również delegata ...

+0

Bardzo zrozumiałe rozumowanie Thomas, +1 za to. Nadal byłbym bardzo zainteresowany sposobem, aby VS sformatował to automatycznie, nawet pozostawiając nazwę "e". Wiem, że to, o co pytam, zajmuje tylko kilka sekund, by ręcznie nadpisać, ale to jeszcze kilka sekund :) –

0

Chcesz powiedzieć, że chcesz zmienić kod wygenerowany automatycznie podczas tworzenia procedury obsługi zdarzeń?

Moja odpowiedź brzmi: nie, ale nie jestem do końca pewien, dlaczego musiałbyś.

+0

Moje rozumowanie jest zilustrowane w podanym przykładzie, chociaż chcę je rozszerzyć, dostarczając domyślne komentarze do obsługi. Jest dla nas polityką komentowania prywatnych członków. –

0

W przypadku nadal chcesz zmienić coś do auta wygenerowany kod dla obsługi zdarzeń, używam rozszerzenia this dla Visual Studio od kilku lat.

Bardzo pomocne jest wygenerowanie bardziej czystej nazwy programu obsługi zdarzeń. Jak widać, zamiast generować coś takiego jak txtName_LostFocus, rozszerzenie zaproponuje ci metodę o następującej nazwie: OnNameLostFocus.

Pomaga to pozbyć się podkreśleń i przedrostków, które zwykle dodajemy do elementów sterujących. Rozszerzenie ma ekran konfiguracji, aby dodać wszystkie prefiksy, które chcesz.

Ale wszystko, co powiem, nie jest pomocne w odpowiedzi na twoje pytanie. Tutaj jest pomoc -> W kodzie, który możesz pobrać, możesz zobaczyć, jak działa silnik, aby zastąpić nazwę metody obsługi zdarzenia i jestem całkowicie pewien, że możesz znaleźć rozwiązanie, które pozwoli zmienić nazwę dowolnego argumentu (jeśli nadal chcesz), a także dodaj wyraźny modyfikator.

Postaram się znaleźć rozwiązanie i poinformować o postępach.

UPDATE: Można również użyć ReSharper który będzie automatycznie jeśli chcesz dodać wyraźny modyfikator dla używasz oczyścić silnik.

Powiązane problemy