C # ist eine multiparadigmatisierte, verwaltete, durch Müll gesammelte objektorientierte Programmiersprache, die von Microsoft parallel zur .NET-Plattform erstellt wurde
In der Vergangenheit habe ich in der Regel den größten Teil meiner Manipulation eines Objekts innerhalb der primären Methode durchgeführt, die erstellt / aktualisiert wird. In letzter Zeit habe ich jedoch einen anderen Ansatz gewählt und bin gespannt, ob dies eine schlechte Praxis ist. Hier ist ein Beispiel. Angenommen, ich …
Ich sehe mich immer unveränderlicher Typen, wenn nicht erwartet wird, dass die Instanzen der Klasse geändert werden . Es erfordert mehr Arbeit (siehe Beispiel unten), erleichtert jedoch die Verwendung der Typen in einer Multithread-Umgebung. Gleichzeitig sehe ich in anderen Anwendungen selten unveränderliche Typen, selbst wenn die Veränderlichkeit niemandem nützen würde. …
Kontext Ich habe mit einer Hierarchie von Objekten (einem Ausdrucksbaum) ein "Pseudo" -Besuchermuster verwendet (Pseudo, da darin kein doppelter Versand verwendet wird): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } …
Ich habe also eine Datenzugriffsschicht über TDD erstellt und bin etwas besorgniserregend geworden. Ich würde lieber nicht den falschen Weg einschlagen, also dachte ich mir, ich würde euch fragen, ob meine Gedanken mit einer sauberen Architektur übereinstimmen. Die Methoden in meiner Datenzugriffsschicht (kurz DAL) sind ziemlich einfach. Sie stimmen mit …
Ich lese das Buch Prinzipien, Praktiken und Muster der Abhängigkeitsinjektion und lese über das Konzept der undichten Abstraktion, das im Buch gut beschrieben wird. In diesen Tagen überarbeite ich eine C # -Codebasis mithilfe der Abhängigkeitsinjektion, sodass asynchrone Aufrufe verwendet werden, anstatt solche zu blockieren. Dabei erwäge ich einige Schnittstellen, …
Mit Hilfe von AOP kann ich den Protokollierungscode aus meiner Geschäftslogik entfernen. Aber ich denke, es kann nur verwendet werden, um einfache Dinge zu protokollieren (dh Protokollierungsmethodenein- / -ausgang und Parameterwerte). Was ist jedoch, wenn ich etwas in meiner Geschäftslogik protokollieren muss? z.B public void SomeDomainMethod(string id) { //Get user …
Ich bin Elektrotechniker und weiß nicht, was zum Teufel ich mache. Bitte speichern Sie die zukünftigen Betreuer meines Codes. Vor kurzem habe ich an einer Reihe kleinerer Programme (in C #) gearbeitet, deren Funktionalität logisch "prozedural" ist. Eines davon ist beispielsweise ein Programm, das Informationen aus verschiedenen Datenbanken sammelt, diese …
Wenn ich in C # eine stringdurch eine andere teilen möchte, muss stringich so etwas tun: testString.Split(new string[] { "anotherString" }, StringSplitOptions.None); Aus der überladenen String.SplitMSDN-Dokumentation können wir die Implementierung und den Grund für einen solchen Aufruf ersehen. Ich komme aus Python und kann nur schwer richtig verstehen, warum ein …
IComparable funktioniert nur in eine Richtung Angenommen, Sie haben eine EmployeeKlasse. In einer Ansicht möchten Sie alle Employeesnach Namen sortiert anzeigen - in einer anderen nach Adresse. Wie wirst du das erreichen? Nicht mit IComparable, zumindest nicht in irgendeiner Weise. IComparable hat die Logik am falschen Ort Die Schnittstelle wird …
Ich habe einen Unit Test, der so aussieht: [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Ich behaupte, dass hier ein Personenobjekt erstellt wird, dh dass die Validierung nicht fehlschlägt. Wenn der Guid beispielsweise null ist oder das Geburtsdatum vor dem 01.01.1900 liegt, schlägt …
Java und .NET verfügen über wunderbare Garbage Collectors, die den Speicher für Sie verwalten, und über praktische Muster zum schnellen Freigeben externer Objekte ( Closeable, IDisposable), jedoch nur, wenn sie einem einzelnen Objekt gehören. In einigen Systemen muss eine Ressource möglicherweise unabhängig von zwei Komponenten verwendet und nur freigegeben werden, …
Ich bin ein C ++ - Entwickler, der seitdem das MVC-Muster zum Entwerfen von GUIs verwendet. Vor kurzem wollte ich wieder in C # einsteigen und habe eine Windows Forms-Anwendung eingerichtet, aber jetzt bin ich ein wenig verloren, wie ich sie auf eine MVC-kompatible Struktur übertragen kann. Was ich derzeit …
Nehmen wir an, wir haben die folgende Schnittstelle - interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Voraussetzung ist, dass ConnectionString gesetzt / initialisiert wird, bevor eine der Methoden ausgeführt werden kann. Diese Voraussetzung kann etwas erreicht …
In unserer Geschäftslogik haben wir gelegentlich Methoden wie diese definiert: User.ResetCourse(Course courseToReset) Das Problem ist, dass sowohl Benutzer als auch Kurs Entity Framework-Proxyobjekte sind. Dies bedeutet, dass das Aufrufen der Navigationseigenschaften für Benutzer oder Kurs einen großen Treffer für die Datenbank verursachen kann, da diese Objekte nicht IQuery-fähig sind und …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.