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.


18
Wyraźny () z lambda?
Tak, więc mam wyliczenie i chcę uzyskać od niego odrębne wartości. Używając System.Linq, istnieje oczywiście metoda rozszerzenia o nazwie Distinct. W prostym przypadku można go używać bez parametrów, takich jak: var distinctValues = myStringList.Distinct(); Dobrze i dobrze, ale jeśli mam wyliczenie obiektów, dla których muszę określić równość, jedynym dostępnym przeciążeniem …

8
Która metoda działa lepiej: .Any () vs .Count ()> 0?
w System.Linqprzestrzeni nazw, możemy rozszerzyć nasze IEnumerable jest mieć Obojętnie () i count () metody rozszerzenie . Ostatnio powiedziano mi, że jeśli chcę sprawdzić, czy kolekcja zawiera 1 lub więcej elementów, powinienem użyć .Any()metody rozszerzenia zamiast .Count() > 0metody rozszerzenia, ponieważ .Count()metoda rozszerzenia musi iterować wszystkie elementy. Po drugie, niektóre …

15
Czy mogę dodać metody rozszerzeń do istniejącej klasy statycznej?
Jestem fanem metod rozszerzenia w języku C #, ale nie udało mi się dodać metody rozszerzenia do klasy statycznej, takiej jak konsola. Na przykład, jeśli chcę dodać rozszerzenie do konsoli o nazwie „WriteBlueLine”, aby móc przejść: Console.WriteBlueLine("This text is blue"); Próbowałem tego, dodając lokalną, publiczną metodę statyczną, z konsolą jako …

30
Jakie są twoje ulubione metody rozszerzenia dla C #? (codeplex.com/extensionoverflow)
Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych odpowiedzi ani interakcji. Zróbmy listę odpowiedzi, w której zamieścisz swoje doskonałe i ulubione metody rozszerzenia . Wymagane jest opublikowanie pełnego kodu oraz przykładu i wyjaśnienia, jak go używać. …



6
Konwertuj ciąg [] na int [] w jednym wierszu kodu za pomocą LINQ
Mam tablicę liczb całkowitych w postaci ciągu: var arr = new string[] { "1", "2", "3", "4" }; Potrzebuję szeregu „prawdziwych” liczb całkowitych, aby dalej: void Foo(int[] arr) { .. } Próbowałem rzucić int i oczywiście nie udało się: Foo(arr.Cast<int>.ToArray()); Mogę teraz zrobić: var list = new List<int>(arr.Length); arr.ForEach(i => …

9
Metody rozszerzeń muszą być zdefiniowane w nieogólnej klasie statycznej
Pojawia się błąd: Metody rozszerzeń muszą być zdefiniowane w nieogólnej klasie statycznej Na linii: public class LinqHelper Oto klasa pomocnicza, oparta na kodzie Mark Gavells. Jestem naprawdę zdezorientowany, co oznacza ten błąd, ponieważ jestem pewien, że działał dobrze, kiedy go zostawiłem w piątek! using System; using System.Collections.Generic; using System.Linq; using …

4
Kod równoważny słowu kluczowemu „let” w połączonych połączeniach metod rozszerzenia LINQ
Korzystając z funkcji rozumienia zapytań kompilatorów C #, możesz pisać kod taki jak: var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" }; var result = from animalName in names let nameLength = animalName.Length where nameLength > 3 orderby nameLength select animalName; W powyższym wyrażeniu zapytania letsłowo kluczowe …


6
Przeciążanie operatorów za pomocą metod rozszerzenia języka C #
Próbuję użyć metod rozszerzających, aby dodać przeciążenie operatora do StringBuilderklasy C # . Konkretnie biorąc StringBuilder sb, chciałbym sb += "text"stać się odpowiednikiem sb.Append("text"). Oto składnia tworzenia metody rozszerzenia dla StringBuilder: public static class sbExtensions { public static StringBuilder blah(this StringBuilder sb) { return sb; } } Pomyślnie dodaje blahmetodę …

7
Mockowanie metod rozszerzeń za pomocą Moq
Mam już istniejący interfejs ... public interface ISomeInterface { void SomeMethod(); } i rozszerzyłem tę intreface za pomocą miksera ... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } Mam klasę, która to nazywa, którą chcę przetestować ... public class Caller { …


4
Wypróbuj z zasobami w Kotlinie
Kiedy próbowałem napisać odpowiednik trykodu Java z zasobami w Kotlinie, nie zadziałał. Wypróbowałem różne warianty następujących: try (writer = OutputStreamWriter(r.getOutputStream())) { // ... } Ale to nie działa. Czy ktoś wie, czego zamiast tego użyć? Najwyraźniej gramatyka Kotlina nie ma definicji takiej konstrukcji, ale może czegoś mi brakuje. Definiuje gramatykę …

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.