C # to wieloparadygmatyczny, zarządzany obiektowy język programowania ze zbieraniem elementów bezużytecznych stworzony przez firmę Microsoft równolegle z platformą .NET
Mam klasę C #, która reprezentuje typ zawartości w systemie zarządzania treścią internetową. Mamy pole, które pozwala edytorowi treści WWW wprowadzić szablon HTML do wyświetlania obiektu. Zasadniczo używa składni kierownicy do podstawiania wartości właściwości obiektu w ciągu HTML: <h1>{{Title}}</h1><p>{{Message}}</p> Czy z perspektywy projektowania klas powinienem udostępniać sformatowany ciąg HTML (z …
Mam część wzorca CQRS zaimplementowanego przy użyciu architektury S # arp w następujący sposób: public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } …
Gdy musisz powtórzyć czytnik, w którym liczba pozycji do odczytania jest nieznana, a jedynym sposobem jest kontynuowanie czytania, aż do końca. Często jest to miejsce, w którym potrzebujesz niekończącej się pętli. Zawsze jest to, trueco oznacza, że gdzieś wewnątrz bloku musi być instrukcja breaklubreturn int offset = 0; while(true) { …
Próbuję porównać klasy typów Haskella i interfejsy C #. Załóżmy, że istnieje Functor. Haskell: class Functor f where fmap :: (a -> b) -> f a -> f b Jak zaimplementować tę klasę typu jako interfejs w języku C #? Co próbowałem: interface Functor<A, B> { F<B> fmap(Func<A, B> f, …
Jeśli napiszę coś takiego: var things = mythings .Where(x => x.IsSomeValue) .Where(y => y.IsSomeOtherValue) Czy to to samo, co: var results1 = new List<Thing>(); foreach(var t in mythings) if(t.IsSomeValue) results1.Add(t); var results2 = new List<Thing>(); foreach(var t in results1) if(t.IsSomeOtherValue) results2.Add(t); A może pod przykryciem jest jakaś magia, która działa …
Kiedy piszę taki kod, gdzie obj jest zmienną lokalną: if (obj is IMyInterface) { var result = (IMyInterface)obj; // .... } Resharper oferuje zamianę tego kodu w następujący sposób: var result = obj as IMyInterface; if (result != null) { // ... } Wolę ten pierwszy, ponieważ nie oferuje on …
Nie jestem facetem w C ++, ale muszę o tym myśleć. Dlaczego wielokrotne dziedziczenie jest możliwe w C ++, ale nie w C #? (Wiem o problemie z diamentem , ale nie o to tu pytam). Jak C ++ rozwiązuje niejednoznaczność identycznych podpisów metod odziedziczonych z wielu klas podstawowych? I …
Dokonujemy refaktoryzacji do 20-letniej bazy kodu starszego typu i rozmawiam z kolegą na temat formatu komentarzy w kodzie (plsql, java). Nie ma domyślnego formatu komentarzy, ale w większości przypadków ludzie robią coś takiego w komentarzu: // date (year, year-month, yyyy-mm-dd, dd/mm/yyyy), (author id, author name, author nickname) and comment proponowany …
Chociaż jest to pytanie ogólne, jest ono również specyficzne dla problemu, którego obecnie doświadczam. Obecnie w interfejsie mam określony interfejs o nazwie public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } Ten interfejs jest często używany w całym programie, dlatego mam łatwy dostęp do …
Powiedzmy, że otrzymujesz następujące ... List<Thing> theThings = fubar.Things.All(); Gdyby nie było nic do zwrócenia, czego można oczekiwać od fubar.Things.All ()? Edycja: Dzięki za opinie. Zaczekam chwilę i zaakceptuję zgłoszenie z największą liczbą wzlotów. Zgadzam się z dotychczasowymi odpowiedziami, szczególnie tymi sugerującymi pustą kolekcję. Sprzedawca dostarczył interfejs API z kilkoma …
Odziedziczyłem mały projekt i chcę go jednocześnie rozszerzyć i ustabilizować, pisząc Testy jednostkowe dla całego dodawanego przeze mnie kodu. Pierwsza klasa, TypedAudioCreatortworzy pliki audio i okazało się, że bardzo łatwo było najpierw przetestować i napisać kod na drugie. Kiedy jednak przyszedł czas na pisanie TypedAudioPlayer, nie miałem pojęcia, jak to …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Moje zajęcia programistyczne w szkole to C ++, ale skończyłem pracę w C …
Staram się usprawnić dokumentowanie mojego kodu, szczególnie jeśli chodzi o komentarze XML do członków klasy, ale często wydaje się to głupie. W przypadku procedur obsługi zdarzeń konwencja nazewnictwa i parametry są standardowe i jasne: /// <summary> /// Handler for myCollection's CollectionChanged Event. /// </summary> /// <param name="sender">Event Sender</param> /// <param …
Czytam oficjalną Twoją pierwszą aplikację opartą na NHibernate . Chociaż samouczek jest dobry i łatwy do naśladowania, zastanawiam się, dlaczego użyto wzorca repozytorium. W różnych Add, Update, Removemetody w ProductRepositoryrealizacji, kod jest prawie identyczne - wszystkie są z wykorzystaniem transakcji, a różnica jest w „mięsie”, czyli wezwanie session.Saveint Addmetoda, session.Deletew …
Pracuję nad aplikacją ASP.NET MVC i przyzwyczaiłem się do umieszczania w moich modelach / obiektach elementów, które wydają się przydatne i wygodne. Na przykład: public class Member { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public …
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.