Nie w rozszerzeniu życia i jego namiętności leży szczęście, ale w wyrzeczeniu się ich. Jakiś losowy cytat o rozszerzaniu z googla, nie mający nic wspólnego z tematem. W dzisiejszym odcinku przyjrzymy się metodom rozszerzającym. Metody rozszerzające, jak większość rzeczy z tej serii, zostały wprowadzone w jednym celu – aby usprawnić LINQ. To, że możemy ich używać w innym celu, to tylko miły dodatek. Są one w zasadzie metodami statycznymi, które można wywoływać jakby były m...
Daj się poznać 2017 2779 dni, 8 godzin, 23 minuty temu 78 źrodło rozwiń
„Linq to Object” jest bardzo dobrze wyposażonym mechanizmem. Posiada wiele metod, które generalnie pokrywają 70% potrzeb podczas projektowania aplikacji. Jednak czasami potrzebujemy tych 30%, których nie ma. Poniżej pokazuje jak napisać własną metodę rozszerzeń (extension method) do Linq To Object na przykładzie autorskiej metody SplitIntoParts. Aby napisać dobrą metodę rozszerzeń należy spełnić kilka warunków...
Sztuka programowania 3588 dni, 18 godzin, 16 minut temu 183 źrodło rozwiń
.NET 2.0 to stara rzecz, ale wciąż z różnych powodów używana, na przykład dlatego, że klient nie chce zainstalować nowej wersji platformy na maszynach wszystkich użytkowników systemu. A co, jeśli pomimo tego wymarzy się nam użycie na przykład LINQ to Objects? Metody takie jak Select, Take itd. łatwo zaimplementować samemu, ale bez extensions methods ich użycie nie będzie takie przyjemne. Zastanówmy się, co z tym robić. Metody rozszerzające obsługiwane są począwszy od .NET w wersji...
Jedną z ogromnych zalet programowania obiektowego jest to, że raz napisany kod możemy łatwo rozszerzyć o dowolne konstrukcje, lub stworzyć zupełnie coś nowego na jego podstawie. W tym przypadku chodzi mi głównie o kwestię dziedziczenia, która ma swoje wady i zalety. W tym przypadku bardziej chciałbym skupić się na tych pierwszych. Dziedziczenie nie zawsze jest do końca dobrym rozwiązaniem, ponieważ w C# możemy rozszerzać tylko jedną klasę (ale za to na szczęście możemy implementować dowolną ilość interf...
Architektura 4294 dni, 3 godziny, 20 minut temu 165 źrodło rozwiń
Zaczynamy od próbki kodu:staticclass StringExtensions { publicstaticvoid SayHello(thisstring str, string message) { Console.WriteLine(string.Format("Hello:{0}", message)); } } internalclass Program { privatestaticvoid Main(string[] args) { string str =null; str.SayHello("Piotr"); } } Co według Was wydarzy się po uruchomieniu programu? Na pierwszy rzut oka może wydawać się, że wystąpi NullReferenceException ponieważ wywołujemy metodę na nieistniejącym obi...