C # ist eine multiparadigmatisierte, verwaltete, durch Müll gesammelte objektorientierte Programmiersprache, die von Microsoft parallel zur .NET-Plattform erstellt wurde
Ich kann sehen, dass die Vorteile von veränderlichen gegenüber unveränderlichen Objekten wie unveränderlichen Objekten aufgrund des gemeinsamen und beschreibbaren Status viele schwer zu behebende Probleme bei der Multithread-Programmierung beseitigen. Im Gegenteil, veränderbare Objekte helfen dabei, mit der Identität des Objekts umzugehen, anstatt jedes Mal eine neue Kopie zu erstellen, und …
Angenommen, ich habe eine lange Methode wie diese: public void SomeLongMethod() { // Some task #1 ... // Some task #2 ... } Diese Methode enthält keine sich wiederholenden Teile, die in eine separate Methode oder lokale Funktion verschoben werden sollten. Es gibt viele Leute (einschließlich mir), die denken, dass …
Beim Parsen von Benutzereingaben wird generell empfohlen , keine Ausnahmen auszulösen und abzufangen, sondern Validierungsmethoden zu verwenden. In der .NET-BCL ist dies beispielsweise der Unterschied zwischen int.Parse(löst eine Ausnahme für ungültige Daten aus) und int.TryParse(Rückgabe falsefür ungültige Daten). Ich entwerfe meine eigenen Foo.TryParse(string s, out Foo result) Methode und ich …
Ich habe viele Kernklassen, die ISessionContext der Datenbank, ILogManager für das Protokoll und IService für die Kommunikation mit anderen Diensten benötigen. Ich möchte die Abhängigkeitsinjektion für diese Klasse verwenden, die von allen Kernklassen verwendet wird. Ich habe zwei mögliche Implementierungen. Die Kernklasse, die IAmbientContext mit allen drei Klassen akzeptiert oder …
In ASP.Net Core finde ich, dass die ClaimsAutorisierung eine sehr nicht konkrete Methode ist. Wir können alles als ClaimTypeund ClaimValuepaar hinzufügen ; Gruppen, Vorname, Nachname, Brithdate, canAccessThisURI, isEditor usw. Bei diesem Ansatz (Speichern von allem, was als Ansprüche gespeichert werden kann) wird jedoch eine große Anspruchstabelle erstellt, die 50% meiner …
In dieser Reihe von Blog-Posts beschreibt Eric Lippert ein Problem im objektorientierten Design am Beispiel von Zauberern und Kriegern. abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon Weapon { get; set; } } …
Ich habe kürzlich einige statische "Utility Bag" -Klassen im Helper-Stil überprüft, die in einigen großen C # -Codebasen schweben, mit denen ich arbeite. Grundsätzlich Dinge wie das folgende sehr komprimierte Snippet: // Helpers.cs public static class Helpers { public static void DoSomething() {} public static void DoSomethingElse() {} } Die …
Wir verwenden StructureMap in einem neuen Softwareentwicklungsprojekt. Eines der Teammitglieder hat einen Komponententest implementiert, der im Wesentlichen die StructureMap- Containerkonfiguration testet . Dies geschieht durch Folgendes: Zählt die Anzahl der Instanzen von Assemblys, die für Klassen in unserem Anwendungsnamespace konfiguriert sind. Definiert erwartete Instanzen auf Klassenebene Gibt an, dass die …
Problem Ich habe kürzlich viel darüber gelesen, dass Singletons schlecht sind und wie die Abhängigkeitsinjektion (die ich als "Verwenden von Schnittstellen" verstehe) besser ist. Als ich einen Teil davon mit Callbacks / Interfaces / DI implementierte und mich an das Prinzip der Schnittstellentrennung hielt, war ich ziemlich durcheinander. Die Abhängigkeiten …
Wir führen viele Unit-Tests und Refactoring-Vorgänge für unsere Geschäftsobjekte durch, und ich habe anscheinend ganz andere Meinungen zum Klassendesign als andere Kollegen. Eine Beispielklasse, von der ich kein Fan bin: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; public …
Beim Vergleich von Gleitkommawerten auf Gleichheit gibt es zwei verschiedene Ansätze: NaNnicht gleich sich selbst sein, was der IEEE 754- Spezifikation entspricht. NaNGleichheit mit sich selbst, die die mathematische Eigenschaft der Reflexivität liefert, die für die Definition einer Äquivalenzbeziehung wesentlich ist Die eingebauten IEEE-Gleitkommatypen in C # ( floatund double) …
Ich habe versucht, Command Pattern zum Implementieren von Undo und Redo in meinem Projekt zu verwenden public abstract class Command { protected Form Receiver { set; get; } protected HtmlElement Element { set; get; } abstract public void ReDo(); abstract public void UnDo(); public Command(Form receiver) { this.Receiver = receiver; …
Wir haben diesen Code, der vereinfacht so aussieht: public class Room { public Client Client { get; set; } public long ClientId { get { return Client == null ? 0 : Client.Id; } } } public class Client { public long Id { get; set; } } Jetzt haben …
Ich bin auf diesen interessanten Artikel gestoßen : Wie ich die COM-Interoperabilität auf CodeProject liebte, was mich zum Nachdenken brachte ... Der Autor argumentiert, dass sie keine COM-ities in ihrer .NET-Bibliothek haben möchten, da dies die Schönheit ihrer .NET-Bibliothek beeinträchtigt. Stattdessen schreiben sie lieber eine separate Interop-Bibliothek, die ihre .NET-Bibliothek …
Angenommen, ich habe verschiedene Entitäten in meinem Modell (mit EF), z. B. Benutzer, Produkt, Rechnung und Bestellung. Ich schreibe ein Benutzersteuerelement, das die Zusammenfassungen von Entitätsobjekten in meiner Anwendung drucken kann, in denen die Entitäten zu einer vorab festgelegten Menge gehören. In diesem Fall sage ich, dass Zusammenfassungen von Benutzer …
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.