visual studio rozwijanie i zwijanie metod

0

Mam takie trochę głupie pytanie ale nie daje mi to spokoju....

  public void Assault()
    {
        movementSpeed = 100;
        healthPoints = 125;
        equipmentCarried=3;
    }

jak w visual studio mam po lewej stronie przy metodach takie + i - zeby rozwijac metode i ja rozwijac to czy jezeli w metodzie np Awake(){} chcialbym umiescic kilka metod podobnych , np klas postaci . Czy da sie jakos zebrac kilka tych metod spiać je jakos zebym mogl je rozwijac i zwijac tym + i - Bez zwijania calej metody awake?

0

...czy jezeli w metodzie np Awake(){} chcialbym umiescic kilka metod podobnych , np klas postaci...

nie rozumiem...

Zawsze możesz zrobić region chociaż to uchodzi za antywzorzec i przesadzanie z tym tylko Ci utrudni czytelność.

0

wlasnie to by mi poprawilo czytelnosc kodu , bo jak mam tą funkcje Awake(){} to jezeli mam np kilkanascie podobnych funkcji w ktorych zmieniam tylko 1 parametr(hipotetycznie) to wtedy trudno jest mi odnaleŹć funkcje ktore robia inne rzeczy , dlatego tez mysle ze spiecie ich jakas klamerka czy cokolwiek zebym mogl je zwinac i wtedy widziec tylko 2 funkcje zamiast 20 to byloby lepiej

EDIT. ogolnie to ten edit dziala , ale #region ..... nie moge tego zmienic na #klasyPostaci ? da sie?
EDIT2. po zrobieniu #region //Komentarz pojawia sie nazwa jaka chce:)

0

pokaż co masz teraz.

0
Awake(){

#region //Klasy postaci
If(){}
if(){}
if(){}

#endregion
}

i jak zwine to mi sie pokazuje #Klasypostaci
czyli dokladnie to o co mi chodzilo , dzieki za pomoc to mi duzo ulatwi robote

nie wiem czemu ale zamiast # pokazuje sie 1.

1
  • Zapnij kod w znaczniki <code class="csharp"></code>;
  • Pamiętaj, że nadużywanie regionów wnosi skutek odwrotny od zamierzonego. Jeżeli te ify nie są jakieś strasznie wielkie to regiony są niepotrzebne. Jeżeli są to podziel funkcje, a dokładnie to co jest w ifach, na mniejsze metody.
  • Zaakceptuj odpowiedź i zamknij wątek jeżeli temat jest zakończony.
1

A może zamiast pisać bliźniacze kilometrowe metody i zawijać je regionami, podzielić je na mniejsze, sparametryzować i przestać kopiować kod, to wtedy regiony okażą się zbędne?

0

No ale jeżeli mam dużo if które robią to prawie samo tylko dla innych parametrow, to chyba lepiej je spiac razem i zwinąć jako całość. Niżeli parametryzowac.. Nawet nie wiem co to znaczy:/
A czemu waszym zdaniem #region jest zły

0

W moim przypadku każdy if w tym awake()
Sprawdza czy a co ja będę się rozpisywał.. Pokaże po prostu
(podaje przykładowe nazwy)
If (magik=true)
{
Magik()
}
I takie coś ^ kilkanaście razy, bo to sprawdza która klasę wybrało. Chyba ze jest jakiś prostszy sposób to mnie oswieccie

2

Już pisałem. region uchodzi za antywzorzec. Mały przykład: Metody powinno pisać się zgodnie z ich wykonywaniem czyli jedna pod drugą. Jeżeli "główna" metoda korzysta z jakiejś innej metody, którą wcześniej napisałeś to dobrze jest umieścić tę inną metodę zaraz pod "główną" etc... Wtedy kod czyta się "jak książkę" z góry na dół. Regionując kod możesz nieopacznie doprowadzić do sytuacji kiedy bardziej będziesz dbał o rozmieszczenie regionów niż funkcji przez co żeby sprawdzić co się po kolei wykonuje będziesz bez przerwy jeździł suwakiem. Innego przykładu nie chce mi się szukać, bo późno już :)

No ale jeżeli mam dużo if które robią to prawie samo tylko dla innych parametrow, to chyba lepiej je spiac razem i zwinąć jako całość...

Rozbij to co masz w if'ach na funkcje po prostu. Jak coś jest zależne od parametru to przekaż go jako argument, chyba, że jest to jakieś pole klasy to nie musisz, bo taka funkcja ma do niego od razu dostęp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1