Pytania otagowane jako extension-methods

Metoda rozszerzenia jest funkcją językową niektórych języków, takich jak Swift, Visual Basic.NET i C #. Metody rozszerzające umożliwiają „dodawanie” metod do istniejących typów bez tworzenia nowego typu pochodnego, ponownej kompilacji lub innego modyfikowania typu oryginalnego.


2
Jak dodać nowe metody do istniejącego typu w Go?
Chcę dodać wygodną metodę wykorzystania do gorilla/muxtypów tras i routerów: package util import( "net/http" "github.com/0xor1/gorillaseed/src/server/lib/mux" ) func (r *mux.Route) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } func (r *mux.Router) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } ale kompilator informuje mnie Nie można zdefiniować nowych …

13
Czy mogę „pomnożyć” ciąg (w C #)?
Załóżmy, że mam na przykład ciąg string snip = "</li></ul>"; Zasadniczo chcę napisać to wiele razy, w zależności od jakiejś wartości całkowitej. string snip = "</li></ul>"; int multiplier = 2; // TODO: magic code to do this // snip * multiplier = "</li></ul></li></ul>"; EDYCJA: Wiem, że mogę łatwo napisać własną …

1
Czy metody rozszerzające można zastosować do interfejsów?
Czy można zastosować metodę rozszerzenia do interfejsu? (Pytanie w C #) Ma to na przykład umożliwić osiągnięcie następujących celów: stworzyć interfejs ITopology utwórz metodę rozszerzenia dla tego interfejsu (np. public static int CountNodes (ta topologia ITopology, jeśli)) wtedy podczas tworzenia klasy (np. MyGraph), która implementuje ITopology, miałaby automatycznie rozszerzenie Count …

8
AddRange to a Collection
Współpracownik zapytał mnie dzisiaj, jak dodać zakres do kolekcji. Ma klasę, która dziedziczy Collection<T>. Istnieje właściwość get-only tego typu, która zawiera już pewne elementy. Chce dodać elementy z innej kolekcji do kolekcji właściwości. Jak może to zrobić w sposób przyjazny dla C # 3? (Zwróć uwagę na ograniczenie dotyczące właściwości …

9
Jak rozszerzyć klasę za pomocą metod rozszerzających C #?
Czy do klasy można zastosować metody rozszerzające? Na przykład rozszerz DateTime, aby uwzględnić metodę Tomorrow (), którą można wywołać, na przykład: DateTime.Tomorrow(); Wiem, że mogę użyć static DateTime Tomorrow(this Datetime value) { //... } Lub public static MyClass { public static Tomorrow() { //... } } dla podobnego wyniku, ale …




2
Gdzie jest metoda rozszerzenia LINQ „składana”?
Znalazłem w próbkach Linq MSDN zgrabną metodę o nazwie Fold (), której chcę użyć. Ich przykład: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); Niestety, nie mogę tego skompilować, ani w ich przykładzie, ani we własnym kodzie i nie …

5
Jak rozszerzyć typy wbudowane C #, takie jak String?
Pozdrowienia wszyscy ... Muszę . Ale chcę usunąć wszystkie powtarzające się spacje w samym ciągu, nie tylko na końcu lub na początku. Mógłbym to zrobić metodą:TrimString public static string ConvertWhitespacesToSingleSpaces(string value) { value = Regex.Replace(value, @"\s+", " "); } Które mam stąd . Ale chcę, aby ten fragment kodu był …

6
Jak używać Moq do mockowania metody rozszerzenia?
Piszę test, który zależy od wyników metody rozszerzającej, ale nie chcę, aby przyszła awaria tej metody rozszerzającej kiedykolwiek przerwała ten test. Kpienie z tego wyniku wydawało się oczywistym wyborem, ale Moq nie wydaje się oferować sposobu na zastąpienie metody statycznej (wymóg dla metody rozszerzającej). Podobny pomysł jest z Moq.Protected i …

2
Jak napisać metodę rozszerzenia w JavaScript?
Muszę napisać kilka metod rozszerzających w JS. Wiem, jak to zrobić w C #. Przykład: public static string SayHi(this Object name) { return "Hi " + name + "!"; } a następnie wezwany przez: string firstName = "Bob"; string hi = firstName.SayHi(); Jak zrobiłbym coś takiego w JavaScript?

30
Jakie zalety metod przedłużających znalazłeś? [Zamknięte]
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i prawdopodobnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …

8
Przykład szybkiego rozszerzenia
Początkowo chciałem wiedzieć, jak zrobić coś takiego UIColor.myCustomGreen abym mógł zdefiniować własne kolory i używać ich w całej aplikacji. Studiowałem wcześniej rozszerzenia i pomyślałem, że prawdopodobnie mógłbym ich użyć do rozwiązania mojego problemu, ale nie pamiętałem dokładnie, jak je skonfigurować. Wyszukiwanie w Google w czasie pisania tego tekstu pod kątem …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.