Pytania otagowane jako c#

C # to wieloparadygmatyczny, zarządzany obiektowy język programowania ze zbieraniem elementów bezużytecznych stworzony przez firmę Microsoft równolegle z platformą .NET

5
dla vs foreach vs. LINQ
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 …
86 c#  linq 

11
Czy statyczność jest ogólnie „zła” dla testów jednostkowych, a jeśli tak, to dlaczego Resharper to zaleca? [Zamknięte]
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 …

4
Modele z bogatą domeną - jak dokładnie mieści się zachowanie?
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 …

8
Zwracać wartość magiczną, zgłaszać wyjątek lub zwracać wartość false w przypadku niepowodzenia?
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 …

11
Czy twórcy oprogramowania Java świadomie porzucili RAII?
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 …
82 java  c#  c++  language-design 

10
Wyjątki, kody błędów i dyskryminowane związki
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 …
80 c#  exceptions 

6
Kiedy jechać płynnie w 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: …
78 c#  .net 


11
Czy modyfikowanie kodu wyłącznie do celów testowych jest złą praktyką?
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 …


9
Dlaczego warto korzystać z klas cząstkowych?
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ć …

5
Dlaczego nie używałbyś dyrektywy „using” w C #?
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: …

7
Kiedy używać klas abstrakcyjnych zamiast interfejsów z metodami rozszerzenia w C #?
„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ą …


8
Problemy z nazewnictwem: czy nazwa „ISomething” powinna zostać zmieniona na „Coś”? [Zamknięte]
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 …

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.