Suchergebnisse
Suchergebnisse 1-30 von insgesamt 773.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Da ist bei der Installation etwas schief geleaufen. Neu installieren sollte das Problem beheben. Siehe: social.msdn.microsoft.com/Foru…forum=visualstudiogeneral
-
Ich bau nicht von jedem der ein Problem hat die Applikation nach. Wenn man Hilfe will, dann muss man den Hilfsbereiten auch etwas entgegenkommen. Und den Code brauch ich durchaus, da ich ohne Code kann ich dir nicht sagen ob es ein allgemeines Problem oder ein Problem von deinem Code ist. Ich weiß nicht ob du das Fehlverhalten nicht selbst aus löst oder ob du unabsichtlich Werte gesetzt hast, die nicht gesetzt werden sollen. Wenn das Thema erledigt ist, bitte auch als erledigt markieren.
-
Eigener ASCII Code
BeitragErst mal: ASCII ist ein Standard. Du kannst also keinen neuen ASCII Code für Buchstaben erstellen. Was du willst ist eine Zuordnung von Char zu Integer. Mach dir ein Dictionary(of Char, Integer) mit allen werten, iteriere über deinen Text und hol dir die Daten aus dem Dictionary. Das Ganze mit StringBuilder zu einem String zusammensetzen und fertig.
-
Wenn man so viel wie möglich von etwas braucht, ist eine der einfachsten Architekturen eine fixe Anzahl an Threads zu erstellen welche sich aus einer Queue Arbeit abholen. Um die perfekte Anzahl der Threads herauszufinden, muss man eventuell etwas herumspielen. Das hängt nämlich von mehreren Sachen ab (z.B.: Was ausgeführt werden soll). In irgendeinem Whitepaper hab ich mal gelesen dass Anzahl der CPUs * 2 + 1 ein guter Wert für die maximale Anzahl an Threads sein soll, da sonst die Thread Conge…
-
Hey bin grad nur am Handy online, darum kann ich nur ein paar Anhaltspunkte schreiben. Grundsatzlich musst du die exe zuerst entpacken. Je nachdem welche Art von exe das ist (nativ oder .NET) Bzw. Welche Abhängigkeit diese hat, kannst du das ganze eventuell in memory machen. also schritt 1 in Memory entpacken. schritt 2 exe aus dem Memory heraus ausführen. die Umsetzung der einzelnen schritte sollten recht einfach herauszufinden sein, danach brauchst du das nur noch zusammenführen.
-
Was willst du damit denn bezwecken? Vielleicht lässt sich das Ganze ja anders lösen. Zum Random String generieren gibts zwei Möglichkeiten. 1) Du erstellst eine Liste mit allen Buchstaben und holst dir in einer Schleife mit rnd.Next(list.Count) den Index für den nächsten Buchstaben. Danach nimmst du diesen Buchstaben und fügst ihn an das Ergenis hinten an 2) Du holst dir in einer Schleife mit rnd.Next einen Wert zwischen dem Integer Wert des Startbuchstaben und dem Integer Wert des Endbuchstaben…
-
Ja ist Gewöhnungssache. Bei kleineren Code Beispielen sind die Extension Methods definitiv schöner Ich hab grad den IL angesehen und etwas recherchiert. Unterschiede zwischen LINQ und Iterator:- Iterator werden vom Compiler zu einer Statemachine umgewandelt - LINQ verwendet hingegen einen interne IEnumerable Klasse - LINQ hat (in diesem Beispiel) eine Allozierung mehr als der Iterator - LINQ läuft langsamer als der Iterator Anscheinend wird die generierte Statemachine besser optimiert als das ge…
-
Klar gibt es die und iterator sind auch ein tolles Konzept. Aber ich bin mittlerweile ein riesen Fan von Code der Ausdrückt was passieren soll und nicht wie. Das größte Problem mit Schleifen und iteratoren ist, dass ich mir die Implementierung ansehen muss um zu verstehen was passiert. Das kostet Zeit und es macht es einfacher einen Bug einzubauen. Im Endeffekt muss man sowieso anhand der Problemstellung entscheiden was besser ist, aber grundsätzlich sollte man die höchste Abstraktion die zur Ve…
-
Zitat von jvbsl: „Du hast die Behauptung aufgestellt, dass LinQ performanter sei“ *sein kann. Ich hab nur gesagt dass ich Code habe, der mit Linq besser performt, nicht dass jeder Code mit Linq besser performt. Zitat von jvbsl: „Ich denke sonst ist das Ergebnis nicht ganz fair, da wenn ich das richtig gesehen habe der LinQ teil erst in Zeile 92 evaluated wird“ Richtig. Wenn man das Query zu einer Liste forced ist es gleich schnell wie die For Methode. Aber da man im vorhinein nicht immer weiß, w…
-
Zitat von ErfinderDesRades: „Aber leider ein Zusatz ohne zusätzliche Information/Argumentation. Dass man gut verständlichen und wartbaren Code schreiben soll, ist ja längst Konsens.“ Dass man keine Goto's mehr verwendet auch. Zitat von jvbsl: „Jeder LinQ Code lässt sich anders und performanter programmieren“ Man kann auch alles in Assembly programmieren. Da kann man noch bessere Optimierungen vornehmen. Zitat von jvbsl: „Und für die Behauptung du hast den Unterschied getestet und LinQ war schnel…
-
Also ich hab hier grad einen Test gemacht. Einmal mit zwei for loops und einmal mit LINQ. Die LINQ Version ist nicht nur etwas schneller, sonder drückt auch genauer aus was passieren soll, anstatt wie es passieren soll. Also würde ich mal behaupten dass es sehr wohl optimiert wird. Soweit ich weiß ist LINQ lazy. Dadurch kannst du mehrere Filter zusammenhängen, ohne dass sich das zu sehr auf die Performance auswirkt.
-
@jvbsl zu 2.: Der C# Compiler ist schon ziemlich gut im optimieren. zu 3.: Das glaube ich kaum. Man kann auch gut leserliche Algorithmen schreiben die trotzdem schnell genug sind. Zitat von ErfinderDesRades: „und noch 'ne Umdrehung...“ Das war keine Umdrehung sondern ein Zusatz. Von den beiden Code Snippets die du gepostet hast ist keines wirklich zu bevorzugen, aber ohne zu wissen was das Ergbnis der Schleifen sein soll, kann ich dir hier leider keinen besseren Algorithmus präsentieren. Viellei…
-
Zitat von jvbsl: „Das hat nichts mit dem Datenmodell zu tun, es gibt genügend Algorithmen wo soetwas nötig ist.“ Du kannst grundsätzlich immer zuerst deine Daten filtern und danach mit den gefilterten Ergebnissen arbeiten. Manchmal ist es dafür halt notwendig das Datenmodell zu verbessern. Goto sollte definitiv nicht mehr verwendet werden. Dass der Compiler das aus Optimierungsgründen macht ist mir bewusst. Und dass alle If und Switch statements zu Jumps kompiliert werden ist mir auch bewusst, a…
-
Zitat von xChRoNiKx: „Ich denke hier wäre dann auch ein goto kürzer und eleganter“ Anstatt eines Goto wäre hier ehere eine besseres Datenmodell angebracht welches sich leicht filtern lässt. Dann hast du keine Schleifen mehr und brauchst weder mehrere Breaks, noch Goto. Goto sollte in der allgemeinen Applikationsprogrammierung nicht mehr verwendet bzw. empfohlen werden.
-
Normalerweise wenn man einen C-String von einer DLL bekommt, wird der char pointer als Parameter übergeben C-Quellcode (1 Zeile) In dem Fall muss ein StringBuilder übergeben werden, da ein String nicht schreibbar ist, StringBuilder allerdings schon. Der Marshaller kümmert sich dann um den Rest. Wenn der Rückgabe Wert ein char* ist, dann kannst du nur den Pointer nehmen und per hand konvertieren: VB.NET-Quellcode (29 Zeilen) Du solltest allerdings mal schauen ob es eine Methode zum freigeben des …
-
Ich weiß dass der Beitrag schon etwas älter ist, allerdings wollte ich hierzu noch eine neuere Methode vorstellen. Mit LINQ kann man ziemlich einfach alle Kombinationen einer List holen: VB.NET-Quellcode (5 Zeilen) Das Select(a, b, c) ist die neue Tuple Syntax (ab .NET 4.7). Frühere Versionen können new Tuple(of Integer, Integer, Integer)(a, b, c) verwenden. Hier noch ein paar Beispiele wie man Permutation ohne Wiederholung und Permutation von zwei unterschiedlichen Listen umsetzt. Inkl zwei Ext…
-
@Thias Klar, sind zwar nur ein paar kleine Änderungen und es ist nicht alles abgedeckt, aber du kannst es dir gerne ansehen. Ich hab den Fork davon eh in meinem Githup Repo: https://github.com/hardliner66/DataTransferProtocol Wo die Änderungen durchgeführt worden sind, kannst du in der Commit History nachsehen und wenn du Fragen hast, sag Bescheid.
-
Darum hab ich auch geschrieben, dass es dadurch nicht leichter verständlich ist. War auch mehr ein Proof-of-concept, um zu sehen ob es möglich ist. Hab mich schon lange nicht mehr mit dynamic auseinandergesetzt und hab das als "Übung" genommen. Zitat von VincentTB: „Ich verstehe auch nicht, wie man da etwas falsch machen kann.“ Hast du schon mal an größeren Projekten gearbeitet? Oder an Libraries? Dich mit Themen wie API-Design beschäftigt? Wenn ja, dann solltest du wissen wie leicht man etwas f…
-
Das kommt immer auf die Größe des Projekts an. Je größer und langlebiger das Ganze ist, umso sinnvoller ist es, ein wohldefinierte Schnittstelle zu haben. Eine Schnittstelle ist dann gut, wenn man sie leicht richtig verwenden und schwer bis gar nicht falsch verwenden kann. Aber da ich auch gerne herum bastle, hab ich den Code etwas erweitert um folgendes zu ermöglichen: Beim Server statt: Zitat von VincentTB: „C#-Quellcode (3 Zeilen)“ das: C#-Quellcode (3 Zeilen) Und beim Client, statt: Zitat vo…
-
Remote Calls sollten immer ein gut definiertes Interface haben. Das Problem hier ist, wenn du den RPC call öfter brauchst, musst du im Client einen eigenen Wrapper schreiben, damit du in Zukunft keine Tippfehler einbaust. In diesem Fall kann man es gleich über eine externe DLL lösen und hat somit das Problem nicht. Bei Remoting kann man dies über ein MarshalByRefObject lösen, wodurch sowohl Client als auch Server eine Instanz des Objects haben und auf die public Methoden des Objects zugreifen kö…
-
Zitat von Fakiz: „oder noch kürzer einfach VB.NET-Quellcode (1 Zeile)“ Das macht natürlich Sinn, ist allerdings das selbe wie die Schleife. Die Schleife geht dann raus, wenn zumindest 1 Adapter gefunden wird der eine Verbindung hat. Man kann Schleifen auch verwenden um zu überprüfen ob eine Bedingung auf nur eines der Elemente zutrifft. Also nochmal komplett ausgeschrieben: Die Schleife checkt ob irgendein Adapter eine Netzwerkverbindung hat. Wenn ja, wird das Result auf true gesetzt und ausgest…
-
Zitat von Fakiz: „macht so keinen Sinn“ Ich halte das für eine etwas übertriebene Wortwahl. Der Eventhandler ist eine gute Möglichkeit, wenn ich bei einem State Change sofort reagieren möchte, allerdings gibt es bei diesem Beispiel hier einige Probleme.1. Es gibt keinen Benefit für die Verständlichkeit des Codes. 2. Da ich nur alle 3 Sekunden wissen will ob überhaupt ein Adapter zur Verfügung steht, brauche ich nicht auf jeden State Change zu reagieren. 3. Eventhandler auf Netzwerkkarten können …
-
Konstruktor überladen: Doppelter Code oder auslagern?
BiedermannS - - Weitere Sprachen und sprachübergreifende Themen
BeitragDu kannst auch in C++ andere Konstruktoren aufrufen und dann trotzdem seperate Codes ausführen: C-Quellcode (4 Zeilen) Du kannst einen privaten Basis Konstruktor erstellen, der die gemeinsame Funktionalität beinhaltet und beide Konstruktoren den Basis Konstruktor aufrufen lassen und danach im Body die Funktionalität abbilden, die sich unterscheidet.
-
Oder du verwendest einfach keinen Timer, sondern baust dir eine richtige Klasse die das ordentlich für dich erledigt: (Versteckter Text) Verwenden kannst du das ganze dann so: (Versteckter Text) Edit: Kleiner Nachtrag zu: Zitat von Cell: „Dieser Fehler wird ausgelöst weil er eine Prozedur wie eine Funktion behandelt.“ Ein Return heißt nicht, dass eine Methode wie eine Funktion behandelt wird. Man kann in VB.Net keine Methode wie eine Funktion behandeln (zumindest nicht durch Standard Syntax). Re…