C # ist eine multiparadigmatisierte, verwaltete, durch Müll gesammelte objektorientierte Programmiersprache, die von Microsoft parallel zur .NET-Plattform erstellt wurde
Ich weiß also nicht, ob dies ein gutes oder ein schlechtes Code-Design ist, also dachte ich, ich frage besser. Ich erstelle häufig Methoden für die Datenverarbeitung, die Klassen einbeziehen, und überprüfe die Methoden häufig sehr genau, um sicherzustellen, dass ich nicht vorher Nullreferenzen oder andere Fehler erhalte. Für ein sehr …
Downcasting bedeutet das Umwandeln von einer Basisklasse (oder Schnittstelle) in eine Unterklasse oder Blattklasse. Ein Beispiel für einen Downcast könnte sein, wenn Sie von System.Objectzu einem anderen Typ wechseln. Downcasting ist unbeliebt, vielleicht ein Code-Geruch: Objektorientierte Doktrin ist es beispielsweise vorzuziehen, virtuelle oder abstrakte Methoden zu definieren und aufzurufen, anstatt …
Ich habe bei einer Firma angefangen, die sich hauptsächlich an C # orientiert. Wir haben ein paar Leute, die Java und JRuby mögen, aber die meisten Programmierer hier mögen C #. Ich wurde eingestellt, weil ich viel Erfahrung im Erstellen von Webanwendungen habe und weil ich mich für neuere Technologien …
Ich versuche, mich so weit wie möglich an das Prinzip der einheitlichen Verantwortung (Single Responsibility Principle, SRP) zu halten, und habe mich an ein bestimmtes Muster (für die SRP-Methode) gewöhnt, das sich stark auf Delegierte stützt. Ich würde gerne wissen, ob dieser Ansatz richtig ist oder ob es ernsthafte Probleme …
Ich habe kürzlich angefangen, an einem Ort mit einigen viel älteren Entwicklern zu arbeiten (ungefähr 50+ Jahre alt). Sie haben an kritischen Anwendungen für die Luftfahrt gearbeitet, bei denen das System nicht ausfallen konnte. Infolgedessen neigt der ältere Programmierer dazu, auf diese Weise zu codieren. Er neigt dazu, einen Booleschen …
Vor einigen Monaten haben wir mit der Entwicklung einer App begonnen, mit der eigens entwickelte Testgeräte gesteuert und eine Reihe von Messungen aufgezeichnet werden können. Es sollte eine einfache Benutzeroberfläche haben und aufgrund der fortlaufenden Aufzeichnung, die stattfinden muss, wahrscheinlich Threads erfordern. Diese Anwendung wird einige Jahre lang verwendet und …
In Visual Studio kann ich mit der rechten Maustaste auf eine Schnittstelle klicken und entweder Schnittstelle implementieren oder Schnittstelle explizit implementieren. public class Test : ITest { public string Id // Generated by Implement Interface { get { throw new NotImplementedException(); } } string ITest.Id // Generated by Implement Interface …
Was ist einfacher zu verstehen, eine große boolesche Anweisung (ziemlich komplex) oder dieselbe Anweisung, die in Prädikatmethoden unterteilt ist (viel zusätzlichen Code zum Lesen)? Option 1, der große boolesche Ausdruck: private static bool ContextMatchesProp(CurrentSearchContext context, TValToMatch propVal) { return propVal.PropertyId == context.Definition.Id && !repo.ParentId.HasValue || repo.ParentId == propVal.ParentId && ((propVal.SecondaryFilter.HasValue …
Heute hatte ich einen Streit mit jemandem. Ich habe die Vorteile eines Rich-Domain-Modells im Vergleich zu einem anämischen Domain-Modell erläutert. Und ich habe meinen Standpunkt mit einer einfachen Klasse demonstriert, die so aussieht: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } …
Ich bin ein bisschen verwirrt von der MSDN C # -Dokumentation, die besagt, dass &und |logische Operatoren sind und dass &&und ||bedingte Operatoren. Ich rufe immer wieder &&an ||und !logische Operatoren, also irre ich mich?
In Java gibt es keine virtual, new, overrideSchlüsselwörter für Methodendefinition. Die Arbeitsweise einer Methode ist also leicht zu verstehen. Verursachen , wenn DerivedClass erstreckt Baseclass und hat ein Verfahren mit denselben Namen und dieselbe Signatur von Baseclass dann den übergeordneten findet im Laufzeit - Polymorphismus nehmen (vorausgesetzt , das Verfahren …
Ich arbeite in einem .Net-, C # -Shop und habe einen Kollegen, der immer wieder darauf besteht, dass wir in unserem Code Riesen-Switch-Anweisungen mit vielen "Fällen" anstelle von objektorientierteren Ansätzen verwenden sollten. Sein Argument geht konsequent auf die Tatsache zurück, dass eine Switch-Anweisung zu einer "CPU-Sprungtabelle" kompiliert wird und daher …
Es gibt einige Probleme, die von algebraischen Datentypen leicht gelöst werden können. Beispielsweise kann ein Listentyp sehr prägnant ausgedrückt werden als: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap f b) l = …
Mein Codierungsstil für verschachtelte Funktionsaufrufe ist der folgende: var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); Ich habe kürzlich zu einer Abteilung gewechselt, in der der folgende Codierungsstil sehr häufig verwendet wird: var a = F(G1(H1(b1), …
Vor kurzem bin ich auf diesen Blog-Beitrag von asp.net-Monstern gestoßen, der über Probleme bei der Verwendung HttpClientauf folgende Weise spricht : using(var client = new HttpClient()) { } Laut dem Blog-Post HttpClientkönnen die TCP-Verbindungen offen bleiben , wenn wir die nach jeder Anfrage entsorgen . Dies kann möglicherweise dazu führen …
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.