Als «c#» getaggte Fragen

C # ist eine multiparadigmatisierte, verwaltete, durch Müll gesammelte objektorientierte Programmiersprache, die von Microsoft parallel zur .NET-Plattform erstellt wurde

6
Was kann im Zusammenhang mit der funktionalen Programmierung schief gehen, wenn mein Objekt veränderlich ist?
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 …


3
Wie würde ich eine TryParse-Methode entwerfen, die im Falle eines Analysefehlers detaillierte Informationen liefert?
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 …
9 c#  .net  api-design 

4
Umgebungskontext vs. Konstruktorinjektion
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 …

2
Welche Daten sollen als "Claim" gespeichert werden?
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 …


3
C # -Muster, um „freie Funktionen“ sauber zu handhaben und statische Klassen im „Utility Bag“ im Helper-Stil zu vermeiden
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 …

6
Sollten Unit-Tests nur "funktionale" Software abdecken?
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 …

2
Wie vermeide ich eine verrückte Anzahl von Schnittstellen in der Benutzeroberfläche mit Abhängigkeitsinjektion?
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 …

4
Wie man gegen diese „vollständig öffentliche“ Denkweise des Entwurfs von Geschäftsobjektklassen argumentiert
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 …

2
Sollte `Vector <float> .Equals` reflexiv sein oder sollte es der IEEE 754-Semantik folgen?
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) …

1
Wie ordne ich Befehlsobjekte dem richtigen Empfänger zu?
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; …


3
Schreiben Sie Ihre .NET-Bibliothek besser unter Berücksichtigung der COM-Einschränkungen oder trennen Sie Ihre .NET-Bibliothek von Interop?
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 …

3
Ist die Verwendung von Schnittstellen für Datentypen ein Anti-Pattern?
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 …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.