Articles of c #

Schnittstelle oder abstrakte class?

Für mein neues Pet-Projekt habe ich eine Frage zum Design, das ist schon entschieden, aber ich möchte auch andere Meinungen dazu haben. Ich habe zwei classn (vereinfacht): class MyObject { string name {get;set;} enum relation {get;set;} int value {get;set;} } class MyObjectGroup { string name {get;set;} enum relation {get;set;} int value {get;set;} List myobjects {get;set;} […]

Fast genau bigint faktoriell

Ich habe eine Fixpunkt-Bignumber-Bibliothek und möchte eine schnelle Fakultät ohne Präzisionsverlust implementieren. Nach einigen Mathetricks auf Papier habe ich diese Formel: (4N)!=((2N)!).((2N)!).{ (2N+1).(2N+3).(2N+5)…(4N-1) }.(2^N)/(N!) Das ist schon ziemlich schnell, und mit einigen Programmiertricks nähert sich die Komplexität ~ O(log(n)) . Um es klar zu sagen, meine derzeitige Implementierung ist dies: //————————————————————————— longnum fact(const DWORD &x,longnum […]

Wie kann ein Windows-Dienst einen process starten, wenn ein Timer-Ereignis ausgetriggers wird?

Ich habe einen Windows-Dienst mit Timer erstellt und im timer.Elapsed Ereignis von timer.Elapsed ich einen process ( System.Diagnostics.Process.Start(exe path) ) im Intervall von 5 Sekunden. Dieser process wird jedoch nicht beim Auslösen eines Ereignisses erstellt. Gibt es einen anderen Weg, dies zu tun? Danke im Voraus. private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Process pr […]

initializer_list und Vorlagentyp Abzug

Betrachten Sie die function: template void printme(T&& t) { for (auto i : t) std::cout << i; } oder jede andere function, die einen Parameter mit einem begin () / end () – aktivierten Typ erwartet. Warum ist das Folgende illegal? printme({‘a’, ‘b’, ‘c’}); Wenn all dies legitim ist: printme(std::vector({‘a’, ‘b’, ‘c’})); printme(std::string(“abc”)); printme(std::array {‘a’, […]

Verwenden von Layern und Bitmask mit Raycast in Unity

Die Raycast-functionen von Unity verfügen über einen Parameter, mit dem Sie zu einem bestimmten GameObject senden können. Sie können diesen Parameter auch verwenden, um ein bestimmtes GameObject zu ignorieren. Zum Beispiel die Raycast-function: public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal); Mit layerMask Parameter […]

Darf der Compiler die Speicherzuweisungen des Heaps optimieren?

Betrachten Sie den folgenden einfachen Code, der new (ich weiß, dass es kein delete[] , aber es betrifft diese Frage nicht): int main() { int* mem = new int[100]; return 0; } Kann der Compiler den new Aufruf optimieren? In meinen Untersuchungen optimieren g ++ (5.2.0) und Visual Studio 2015 den new Aufruf nicht, während […]

Wie man Locality Sensitive Hashing versteht?

Mir ist aufgefallen, dass LSH eine gute Möglichkeit ist, ähnliche Objekte mit hoher Dimension zu finden. Nachdem ich das Papier http://www.slaney.org/malcolm/yahoo/Slaney2008-LSHTutorial.pdf gelesen habe, bin ich immer noch verwirrt mit diesen Formeln. Kennt jemand einen Blog oder einen Artikel, der den einfachen Weg erklärt?

‘Newtonsoft’ konnte nicht gefunden werden

Ich habe den Code von http://www.codeproject.com/Tips/789481/Bridging-the-Gap-between-Linqpad-and-Visual-Studio in Visual Studio 15 eingefügt. Er sagt mir, dass ‘Newtonsoft’ nicht gefunden werden konnte . Ich öffne den Ordner “\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies” und stellte fest, dass die Datei Newtonsolft.Json.dll bereits dort ist. Kann mir jemand sagen, wie ich das Problem beheben […]

Verwenden der GPU mit c #

Ich versuche, mehr Rechenleistung aus meinem Raster zu bekommen. Ich benutze alle cpus / cores, ist es möglich, die GPU mit C # zu nutzen. Wer kennt keine Bibliotheken oder keinen Beispielcode?

Implizites Tippen; warum nur lokale Variablen?

Weiß oder spekuliert man, warum die implizite Typisierung auf lokale Variablen beschränkt ist? var thingy = new Foo(); Aber warum nicht… var getFoo() { return new Foo(); }