Articles of c #

Garbage Collection, wenn anonyme Delegaten für die Ereignisbehandlung verwendet werden

AKTUALISIEREN Ich habe verschiedene Antworten von hier zu einer “endgültigen” Antwort auf eine neue Frage kombiniert. Ursprüngliche Frage In meinem Code habe ich einen Event-Publisher, der für die gesamte Lebensdauer der Anwendung existiert (hier auf das Wesentliche reduziert): public class Publisher { //ValueEventArgs inherits from EventArgs public event EventHandler<ValueEventArgs> EnabledChanged; } Da dieser Publisher überall […]

Warum kann eine Nichtmitgliedsfunktion nicht zum Überladen des Zuweisungsoperators verwendet werden?

Der Zuweisungsoperator kann mit einer Memberfunktion, aber nicht mit einer Nichtmitglieder- friend function überladen werden: class Test { int a; public: Test(int x) :a(x) {} friend Test& operator=(Test &obj1, Test &obj2); }; Test& operator=(Test &obj1, Test &obj2)//Not implemented fully. just for test. { return obj1; } Es verursacht diesen Fehler: Fehler C2801: ‘operator =’ muss […]

Wie funktioniert der int.TryParse tatsächlich?

Ich habe nach int.TryParse Methodenimplementierung int.TryParse , wie es eigentlich funktioniert, habe ich aber nicht gefunden. Ich muss über einen string wissen, ob es ein numerischer Wert ist, aber ich möchte ihn diesmal nicht konvertieren. Also brauche ich nur das bool Ergebnis von int.TryParse . Also sind die Fragen: Gibt es irgendeine function, die nur […]

C ++ Entspricht der BlockingQueue von Java

Ich bin dabei, etwas Java-Code nach C ++ zu portieren, und ein bestimmter Abschnitt verwendet eine BlockingQueue, um Nachrichten von vielen Produzenten an einen einzelnen Verbraucher weiterzuleiten. Wenn Sie nicht wissen, was eine Java-BlockingQueue ist, ist es nur eine Warteschlange mit einer festen Kapazität, die threadsichere Methoden für put () und take () aus der […]

Erfassen Sie den Benutzernamen mit log4net

Ich schreibe derzeit alle log4net Ereignisse in eine database, und es scheint zu funktionieren. Um den eingeloggten Benutzeraccount zu erfassen benutze ich diesen Code: HttpContext context = HttpContext.Current; if (context != null && context.User != null && context.User.Identity.IsAuthenticated) { MDC.Set(“user”, HttpContext.Current.User.Identity.Name); } Der Code scheint in Ordnung zu sein, außer für Ereignisse, denen kein Benutzerkontext […]

Was ist die function von “(void) (& _min1 == & _min2)” im Min-Makro in kernel.h?

In kernel.h ist min definiert als: #define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&_min1 == &_min2); \ _min1 < _min2 ? _min1 : _min2; }) Ich verstehe nicht, was die Zeile (void) (&_min1 == &_min2); tut. Ist es eine Art Überprüfung oder etwas?

Nicht statisches Konst-Element, kann den Standard-Zuweisungsoperator nicht verwenden

Ein Programm, das ich erweitere, verwendet std::pair viel. Es gibt einen Punkt in meinem Code, bei dem der Compiler ein ziemlich großes wirft: Nicht statisches const-Element, ‘const Ptr std :: pair, const double *> :: first’ kann den Standardzuweisungsoperator nicht verwenden Ich bin mir nicht sicher, worauf das sich bezieht. Welche Methoden fehlen in der […]

Schnelle Möglichkeit, ein zweidimensionales Array in eine Liste (eindimensional) zu konvertieren

Ich habe zweidimensionales Array – und ich muss es in eine Liste (dasselbe Objekt) konvertieren Ich möchte es nicht mit ‘for’ oder ‘foreach’ tun, die jedes Element aufnehmen und es der Liste hinzufügen. Gibt es einen anderen Weg, es zu tun? Vielen Dank

Warum wird meine öffentliche Eigenschaft nicht vom XmlSerializer serialisiert?

Dies ist einer, mit dem ich seit Ewigkeiten zu kämpfen hatte, dachte also, ich würde irgendwo dokumentieren. (Entschuldigung für das Stellen und Beantworten einer Frage.) (C # .net 2.0) Ich hatte eine class, die von XmlSerializer serialisiert wurde, ich fügte eine neue öffentliche Eigenschaft hinzu, aber es wurde nicht in der Ausgabe-XML enthalten. Es wird […]

Foreach Control in form, wie kann ich etwas für alle TextBoxen in meinem Formular tun?

Wie kann ich eine Foreach-statement verwenden, um etwas mit meinen TextBoxen zu tun? foreach (Control X in this.Controls) { Check if the controls is a TextBox, if it is delete it’s .Text letters. }