C # to wieloparadygmatyczny, zarządzany obiektowy język programowania ze zbieraniem elementów bezużytecznych stworzony przez firmę Microsoft równolegle z platformą .NET
Kiedy piszę kod w Visual Studio, ReSharper (niech Bóg błogosławi!) Często sugeruje mi zmianę starej pętli for w bardziej zwartej formie foreach. I często, kiedy akceptuję tę zmianę, ReSharper robi krok do przodu i sugeruje, żebym ją ponownie zmienił, w błyszczącej formie LINQ. Więc zastanawiam się: czy istnieją jakieś realne …
Odkryłem, że istnieją tylko 3 sposoby testowania jednostkowego zależności (makiety / kodu pośredniczącego), które są statyczne w języku C # .NET: Mole TypeMock JustMock Biorąc pod uwagę, że dwa z nich nie są darmowe, a jeden nie trafił w wersji 1.0, drwiny ze statycznych rzeczy nie są zbyt łatwe. Czy …
W debacie na temat modeli domen Rich vs. Anemic Internet jest pełen porad filozoficznych, ale brakuje autorytatywnych przykładów. Celem tego pytania jest znalezienie ostatecznych wytycznych i konkretnych przykładów prawidłowych modeli projektowania opartych na domenie. (Idealnie w C #.) Na przykład w rzeczywistości ta implementacja DDD wydaje się nieprawidłowa: Poniższe modele …
Czasami czasami muszę napisać metodę lub właściwość dla biblioteki klas, dla której nie jest niczym wyjątkowym brak prawdziwej odpowiedzi, ale niepowodzenie. Coś nie może zostać określone, nie jest dostępne, nie znaleziono, nie jest obecnie możliwe lub nie ma już dostępnych danych. Myślę, że istnieją trzy możliwe rozwiązania dla tak stosunkowo …
Jako długoletni programista C #, ostatnio przyjechałem, aby dowiedzieć się więcej o zaletach pozyskiwania zasobów to inicjalizacja (RAII). W szczególności odkryłem, że idiom C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } ma odpowiednik C ++: { DbConnection dbConn(connStr); // do stuff with dbConn …
Niedawno rozpocząłem programowanie w języku C #, ale mam spore doświadczenie w Haskell. Ale rozumiem, że C # jest językiem zorientowanym obiektowo, nie chcę wciskać okrągłego kołka w kwadratowy otwór. Przeczytałem artykuł Microsoft dotyczący wyjątku Zgłaszanie wyjątków : NIE zwracaj kodów błędów. Ale przyzwyczajony do Haskell, używałem typu danych C …
Pod wieloma względami bardzo podoba mi się pomysł płynnych interfejsów, ale ze wszystkimi nowoczesnymi funkcjami C # (inicjalizatory, lambdy, nazwane parametry) zastanawiam się, czy warto? posługiwać się?". Czy ktoś mógłby dać mi, jeśli nie zaakceptowaną praktykę, przynajmniej własne doświadczenie lub matrycę decyzyjną na temat tego, kiedy zastosować wzór Płynny? Wniosek: …
Szukałem przez AvSol Kodowanie Wytyczne dla C # i zgadzam się z prawie wszystkiego, ale jestem bardzo ciekaw, co inni myśleć o jednej konkretnej reguły. AV1500 Metody nie powinny przekraczać 7 instrukcji Metoda, która wymaga więcej niż 7 instrukcji, robi zbyt wiele lub ma zbyt wiele obowiązków. Wymaga również od …
Prowadzę debatę z kolegą programistą na temat tego, czy dobrą lub złą praktyką jest modyfikowanie działającego kodu tylko w celu umożliwienia jego przetestowania (na przykład poprzez testy jednostkowe). Moim zdaniem jest w porządku, oczywiście w granicach utrzymywania dobrych praktyk obiektowych i inżynierii oprogramowania (nie „upubliczniania wszystkiego” itp.). Zdaniem mojego kolegi …
Po prawie 4 latach doświadczeń, nie widziałem kodu gdzie wydajność jest używane słowo kluczowe. Czy ktoś może mi pokazać praktyczne użycie (wraz z objaśnieniem) tego słowa kluczowego, a jeśli tak, to czy nie istnieją inne sposoby łatwiejszego wypełnienia tego, co może zrobić?
W moim rozumieniu partialsłowo kluczowe nie pozwala na podział klasy na kilka plików źródłowych. Czy jest jakiś inny powód do tego niż organizacja kodu? Widziałem to używane w generowanych klasach interfejsu użytkownika. Wydaje się, że to zły powód, aby utworzyć całe słowo kluczowe. Jeśli klasa jest wystarczająco duża, aby wymagać …
Istniejące standardy kodowania w dużym projekcie C # zawierają zasadę, że wszystkie nazwy typów są w pełni kwalifikowane, co zabrania stosowania dyrektywy „używającej”. Więc zamiast tego, co znajome: using System.Collections.Generic; .... other stuff .... List<string> myList = new List<string>(); (Prawdopodobnie nie jest to zaskoczeniem, że varjest również zabronione). Kończę z: …
„Klasa abstrakcyjna” i „interfejs” są podobnymi pojęciami, a interfejs jest bardziej abstrakcyjny z tych dwóch. Jednym z czynników różnicujących jest to, że klasy abstrakcyjne zapewniają w razie potrzeby implementacje metod dla klas pochodnych. Jednak w języku C # ten czynnik różnicujący został zmniejszony dzięki niedawnemu wprowadzeniu metod rozszerzenia, które umożliwiają …
chciałbym wiedzieć W projekcie C # lub VB.NET powinniśmy dołączyć folder PACKAGE (folder pakietu samorodków, który jest tworzony w katalogu głównym mojego projektu, który zawiera pliki nupkg i inną zawartość) do naszego repozytorium kontroli źródła (na przykład Git).
Rozdział wuja Boba na temat nazw w Czystym Kodzie zaleca unikanie kodowania nazw, głównie w odniesieniu do notacji węgierskiej. On także wyraźnie wymienia usunięcie Iprefiksu z interfejsów, ale nie pokazują przykłady. Załóżmy, że: Wykorzystanie interfejsu służy głównie do testowania poprzez wstrzykiwanie zależności W wielu przypadkach prowadzi to do posiadania jednego …
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.