Parametry są ważne dla każdego nietrywialnego programu, aby pomóc uczynić go ogólnym i opartym na danych. Parametry są zwykle argumentami funkcji, ale mogą również stanowić część konfiguracji.
Próbowałem znaleźć alternatywy dla użycia zmiennej globalnej w jakimś starszym kodzie. Ale to pytanie nie dotyczy alternatyw technicznych, martwię się głównie terminologią . Oczywistym rozwiązaniem jest przekazanie parametru do funkcji zamiast użycia globalnego. W tej starej bazie kodu oznaczałoby to, że muszę zmienić wszystkie funkcje w długim łańcuchu wywołań między …
Podczas tworzenia aplikacji zacząłem się zastanawiać - jak zaprojektować argumenty wiersza poleceń? Wiele programów używa formuł takich jak ten -argument valuelub /argument value. Rozwiązanie, które przyszło mi do głowy, to argument:value. Pomyślałem, że to dobrze, ponieważ bez białych spacji nie ma mowy o pomyleniu wartości i argumentów. Łatwo jest również …
Zauważyłem, że kilka funkcji, z którymi pracuję, ma 6 lub więcej parametrów, podczas gdy w większości bibliotek, których używam, rzadko jest znalezienie funkcji, która zajmuje więcej niż 3. Często wiele z tych dodatkowych parametrów to opcje binarne zmieniające zachowanie funkcji. Myślę, że niektóre z tych funkcji o sparametryzowanych parametrach powinny …
Czasami (rzadko) wydaje się, że najlepszym rozwiązaniem jest utworzenie funkcji, która wymaga przyzwoitej liczby parametrów. Jednak kiedy to robię, czuję, że często losowo wybieram porządkowanie parametrów. Zazwyczaj stosuję „porządek ważności”, z najważniejszym parametrem na początku. Czy jest na to lepszy sposób? Czy istnieje sposób „porządkowania” najlepszych praktyk, który poprawia przejrzystość?
Załóżmy, że mam niestandardowy obiekt, Student : public class Student{ public int _id; public String name; public int age; public float score; } Oraz klasa Window , która służy do wyświetlania informacji o Uczniu : public class Window{ public void showInfo(Student student); } Wygląda całkiem normalnie, ale stwierdziłem, że Window …
Widzę pytania podobne do tego w odniesieniu do nazw parametrów, które pasują do właściwości w klasie, ale nie mogę znaleźć niczego dotyczącego używania nazwy parametru, która jest taka sama jak nazwa typu parametru, z wyjątkiem casing w C #. Wydaje się, że nie jest to naruszenie, które mogę znaleźć, ale …
Mam metodę, w której cała logika jest wykonywana w pętli foreach, która iteruje nad parametrem metody: public IEnumerable<TransformedNode> TransformNodes(IEnumerable<Node> nodes) { foreach(var node in nodes) { // yadda yadda yadda yield return transformedNode; } } W takim przypadku wysłanie pustej kolekcji skutkuje pustą kolekcją, ale zastanawiam się, czy to nierozsądne. …
Według Czy niewłaściwe jest używanie parametru boolowskiego do określania zachowania? , Wiem, jak ważne jest unikanie używania parametrów boolowskich do określania zachowania, np .: orginalna wersja public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } Nowa wersja: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); …
Na przykład System.IO.Path.Combinemetoda w .NET ma następujące przeciążenia: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Jaki jest sens ostatnich trzech? Pierwszy obejmowałby je wszystkie, ponieważ jeśli przyjrzysz się uważnie, użyje paramssłowa kluczowego. Argument zgodności wstecznej obejmowałby tylko Combine(String, String)wariant, ponieważ była to jedyna wersja do .NET …
Jeśli istnieje metoda bool DoStuff() { try { // doing stuff... return true; } catch (SomeSpecificException ex) { return false; } } czy raczej powinno się to nazywać IsStuffDone()? Obie nazwy mogą zostać błędnie zinterpretowane przez użytkownika: Jeśli nazwa jest DoStuff()przyczyną, dla której zwraca wartość logiczną? Jeśli nazwa brzmi, IsStuffDone()nie …
Aby odpowiedzieć na to pytanie, załóżmy, że koszt dwuznaczności w umyśle programisty jest znacznie droższy niż kilka dodatkowych naciśnięć klawiszy. Biorąc to pod uwagę, dlaczego miałbym pozwalać moim kolegom z zespołu na ucieczkę bez adnotowania ich parametrów funkcji? Weź następujący kod jako przykład czegoś, co może być o wiele bardziej …
Rozważ następującą metodę: public List<Guid> ReturnEmployeeIds(bool includeManagement = false) { } I następujące połączenie: var ids = ReturnEmployeeIds(true); Dla programistów, którzy są nowicjuszami w systemie, odgadnięcie, co się stało, byłoby dość trudne true. Najpierw najedź kursorem na nazwę metody lub przejdź do definicji (z których żadne nie jest dużym zadaniem). …
Mam funkcję, która przyjmuje zestaw parametrów, a następnie stosuje się do nich jako warunki do zapytania SQL. Jednakże, chociaż faworyzowałem tablicę pojedynczych argumentów zawierającą same warunki: function searchQuery($params = array()) { foreach($params as $param => $value) { switch ($param) { case 'name': $query->where('name', $value); break; case 'phone': $query->join('phone'); $query->where('phone', $value); …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Załóżmy, że mamy metodę, foo(String bar)która działa tylko na ciągach, które spełniają określone kryteria; na …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.