Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von chilic
Thema: Ausnahmefehler System.InvalidCastExeption
Am im Forum: Grundlagen von C#

"lineString" scheint ein komplexes Objekt zu sein das verschiedene "Geometries" und "Points" enthält. Daher kann das rein vom Inhalt her nichts sein was aus einem einzigen double stammt. Erst recht nichts was man durch einen Cast einfach konvertieren könnte.
Ich würde sagen da trifft beides zu. Zum einen falsches Feld und zum anderen muss es eine Konvertierungsroutine geben.

Thema: Vier gewinnt auswertung
Am im Forum: Code-Reviews

Nachdem du einen Gewinner ermittelt hast, könntest du aus der Prüfmethode heraus springen.

Die Variablen initialisieren wäre kein Schaden. Wird nicht sogar angemeckert dass die keinen eindeutigen Wert bekommen?

Zur Prüfung an sich fällt einem sicherlich das ein oder andere ein.
Zum Beispiel könntest du eine Zeile (Spalte, Diagonale) komplett durchlaufen, dir merken wie viele gleiche Farben du bis zur aktuellen Position schon hintereinander gefunden hast und wenns die vierte mit gleicher Farbe ist, ist das Spiel zu Ende.
Aber ob sich das in der Praxis tatsächlich lohnt?

Thema: Warum mal Hangman-Spiel bei jedem Buchstabendruck oder gar nicht mehr?
Am im Forum: Grundlagen von C#

Zitat
was passiert wenn der Buchstabe NICHT dem gedrückten entspricht ???
Dann wird er nicht "aufgedeckt". Ansonsten passiert erst mal nichts.

Gehen wirs mal durch. Man gibt ein A ein.
Du prüfst die erste Stelle. Die ist kein A. Wird jetzt schon der Galgen weiter gezeichnet? Nein!
Du prüfst die zweite Stelle. Die ist auch kein A. Es wird immer noch nicht gezeichnet.
Du prüfst die ... Stelle. Die ist ein A. Gut dass du den Galgen noch nicht weiter gezeichnet hast!

Oder: du hast alle Stellen geprüft und nirgends war ein A dabei. DANN kannst du den Galgen weiter zeichnen.

Während du die einzelnen Stellen durchgehst, musst du dir merken ob mindestens eine davon den eingegebenen Buchstaben enthält. Am besten in einem Bool, den du für jede passende Stelle auf true setzt.
Nach der Schleife über die Stellen weißt du dann ob dieser Buchstabe ein Treffer war.

Thema: Warum mal Hangman-Spiel bei jedem Buchstabendruck oder gar nicht mehr?
Am im Forum: Grundlagen von C#

Na endlich auch hier der Hinweis "das geht auch mit Linq" ;-)

Thema: Warum mal Hangman-Spiel bei jedem Buchstabendruck oder gar nicht mehr?
Am im Forum: Grundlagen von C#

Vermutung rein vom ansehen deines Codes.
Wenn man einen Buchstaben eingibt, prüfst du für JEDE Stelle, ob sie diesen Buchstaben enthält oder nicht. Wenn nicht, zeichnest du den Galgen für JEDE falsche Stelle ein Stück weiter.
Das heißt, ein Wort mit 5 Buchstaben von denen einer der gedrückte ist, zeichnet den Galgen trotzdem um 4 Teile weiter.
Tatsächlich solltest du zuerst prüfen ob es eine Stelle mit dem Buchstaben gibt. Wenn ja, ALLE passenden Buchstaben aufdecken. Wenn nein, den Galgen um EIN Stück erweitern.


Was soll "_ = pictureBox1.CreateGraphics();" sein? Das kann m.M. raus.

Thema: Wie löse ich das Rucksack Problem mit mehreren Rucksäcken?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich weiß nicht was du mit überlagern meinst, aber die Ableitung einer Liste sollte all das erlauben was du tun willst.
Was genau geht denn wie nicht?

Thema: [Gelöst] Wie kann ich mit möglichst kurzer Syntax Items in einem Dictionary adressieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
die Ausdrücke werden dadurch zum Teil unendlich lang. Hier ein sehr einfaches Beispiel:
Console.WriteLine(TestObjekt.Field[Testklasse.fld.item1]);
58 Zeichen sind doch traumhaft kurz, bezogen auf die Anzahl Zeichen :-)

Ich beziehe die Begriffe "lang" und "kurz" gerne auf die Zeit die man beim Lesen und Verstehen braucht, nicht auf die Länge der Zeile.
Ich würde daher sogar fld noch ausschreiben. Wenn du später wieder in deinen Code schaust und nicht mehr auswendig weißt was das bedeuten soll, ärgerst du dich dass du "damals" nicht ein paar Buchstaben mehr verwendet hast, um zu beschreiben was das sein soll.
Mit den bisherigen Antworten bekommst du deinen Code verkürzt und er bleibt trotzdem noch lesbar und verständlich.

Thema: Was bedeutet die Warnung CS0252?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Der Vergleich von zwei Objektvariablen ergibt, ob beide Variablen auf das selbe Objekt zeigen.
Bei einem String will man aber in der Regel nicht wissen ob zwei Stringvariablen auf das selbe Stringobjekt zeigen, sondern ob die Strings vom Inhalt her gleich sind. Der Vergleich von Strings ist daher überschrieben und vergleicht den String Inhalt.

Bildlich: Du hast zwei verschiedene Zettel, also verschiedene Objekte. Auf beiden steht der gleiche Text.
Der Objektvergleich ergibt "sind nicht gleich", denn es sind zwei separate Zettel.
Der Textvergleich ergibt "ist gleich", denn es ist der selbe Text.

Für deinen Vergleich ist das sehr wichtig, denn bisher vergleichst du das Objekt btnStart.Content das selbe Objekt ist wie der String "Start". Das dürfte nicht der Fall sein.
Was du stattdessen wissen willst ist, ob in btnStart.Content der Text "Start" steht.

Die Warnung zeigt an, dass du an dieser Stelle etwas tust, was du eventuell nicht so haben willst.

Thema: Wie kann ich mit einem Converter eine Zelle anhand des Datums rot, gelb oder grün einfärben?
Am im Forum: GUI: WPF und XAML

Zitat
Ich frage mich nur, warum die erste if-Anweisung vorher nicht gezogen hat.

Schau dir das auch im Debugger an. Ich sehe auf Anhieb keinen Fehler dabei.
Zitat
Was ist der Unterschied es vorher in eine Variable zu schreiben als es direkt im Vergleich zu tun?

Schon die Lesbarkeit ist um einiges besser wenn du keinen irre langen Ausdruck schreibst, sondern eine passend benannte Variable.
Wenn du das dt weglässt und die Variablen date und today nennst, wirds noch flüssiger lesbar.

Außerdem kannst du ein paar Vergleiche weglassen.
Wenn das erste if "dtValue > dtNowPlus60" nicht zutrifft, ist klar dass "dtValue ≤ dtNowPlus60" ist.
Damit reduziert sich das ganze dann zu

if (date > today+60)
  return grün

else if (date ≥ today)
  return gelb

else
  return rot
(mit oder ohne else, wie du es schöner findest)

Anstatt System.Convert würde ich value direkt casten "(DateTime)value". Sieht auch direkt wieder kürzer aus und wenn value kein DateTime ist, knallt dir dein Programm komplett weg, anstatt mit einem eventuell falschen Wert unbemerkt falsch weiter zu machen.

Thema: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt bei Verwendung von zwei Methoden
Am im Forum: Grundlagen von C#

Ist es wirklich die selbe Variable matFilter auf die du da zugreifst?
Falls nein - dann ist das Problem klar. Du erzeugst das Objekt in eine Variable und greifst in der zweiten Methode auf eine andere Variable zu.
Falls ja - dann wird deine Variable zwischen den beiden Methoden auf null gesetzt. Such dir alle Stellen raus die darauf zugreifen und setze einen Breakpoint drauf. Dann findest du sie.

Dann noch eine andere Idee, die Variable gehört ja zu einem Objekt. Ist dieses Objekt bei den Aufrufen der beiden Methoden auch das selbe?

Thema: Wie kann ich 7 Zeilen mit je 11 Zeichen in eine Textdatei speichern?
Am im Forum: Grundlagen von C#

Bevor man dir eine Antwort geben kann, sollte zuerst klar sein was du genau machen willst.
Unter der Beschreibung "nur 7 Zeilen mit je max 11 zeichen an platz" kann ich mir nichts vorstellen. Was bedeutet das?

Thema: Habt ihr eine Kreditkarte, die ihr aktiv benutzt? Warum/Warum nicht?
Am im Forum: Smalltalk

Und der Award für denjenigen dessen Eindruck von 100 auf 0 in Rekordzeit gesunken ist, geht an ...

Thema: Habt ihr eine Kreditkarte, die ihr aktiv benutzt? Warum/Warum nicht?
Am im Forum: Smalltalk

Ich nutze eine Kreditkarte nur für online Bezahlungen. Oder wenns etwas größeres wirklich teures ist.
Alltägliche Einkäufe bezahle ich mit Bargeld. Es geht einfach keinen etwas an, wann ich wo war und was ich da alles gekauft habe. Wenn ich sehe was ich schon für Werbung zu sehen kriege wenn ich online einen Artikel irgendwo ansehe, will ich nicht wissen wie mein Einkaufsverhalten ausgewertet würde.
Gerade in Foren wie diesem hätte ich etwas mehr Sensibilität für diese Thematik erwartet.

Außerdem will ich nicht erst am Monatsende meine Ausgaben sehen. Ich möchte merken, oh ich hab schon wieder kaum mehr Geld, hab wohl in letzter Zeit viel ausgegeben.

Thema: Warum sortieren numerische Strings mit negativen Werten nicht korrekt?
Am im Forum: GUI: Windows-Forms

Vielleicht weiß ja das Grid von irgendwoher dass es sich um Zahlen handelt und sortiert dementsprechend auch numerisch.

Thema: Vom wunderbaren Verhalten von Funkmäusen
Am im Forum: Smalltalk

Zitat
dann selbst 7 € eine 'ärgerliche Zusatzausgabe'.
Verständlich.
Aber unterm Strich eben, einmal 20 € verglichen mit "regelmäßig" 7 € ...

Thema: Vom wunderbaren Verhalten von Funkmäusen
Am im Forum: Smalltalk

Zitat
weil sie mir vollkommen ausreichen
Scherzkeks, offenbar reichen sie ja nicht aus sondern sind schnell unbrauchbar ;-)

Super Verarbeitung ist bei dem Preis nicht zu erwarten. Wäre denkbar dass der Prell-Effekt der Buttons sich durch mechanische Abnutzung ausdehnt und dann mehrfache Klicks erkannt werden.
Die Erkennung der Position könnte vielleicht durch Reinigen der Optik behoben werden? Weiß ich nicht aber einen Versuch wäre es wert.

Wage doch ein Experiment und nimm nächstes mal eine teuere Maus, schreib dir auf wann du die gekauft hast und vergleiche mit bisherigen Erfahrungen.

Thema: Wie kann ich kontrollieren, ob gerade eine MP3-Datei im MediaPlayer läuft?
Am im Forum: Grafik und Sound

Details über den Mediaplayer kenne ich nicht, aber anhand deinem Code könnte das ein möglicher Ansatz sein.

Zitat
soll ununterbrochen stattfinde
Das tut sie auch, so schnell es geht.
Das lastet deinen Thread komplett aus, der macht so schnell es ihm möglich ist den Player zu und wieder auf.
Wahrscheinlich kommt er deswegen nicht dazu etwas abzuspielen, denn selbst nach dem Play Aufruf ist Position immer noch kurz 0 und führt dazu dass er wieder geschlossen und neu gestartet wird.

Thema: Wie erstelle ich ein korrektes INSERT Statement mit Access?
Am im Forum: Grundlagen von C#

Natürlich sollte man Befehle nie so zusammensetzen. Wirklich nie.

Aber verstehen warum es hier einen Fehler gibt, sollte man trotzdem auch.

Thema: Wie erstelle ich ein korrektes INSERT Statement mit Access?
Am im Forum: Grundlagen von C#

Grund ist wahrscheinlich dass Art keinen String haben will, aber du übergibst einen.
Testweise kannst du die ' ' um txtArt.Text weglassen und schauen obs dann funktioniert.
Dann aber auf jeden Fall in Parameter umändern!

Thema: Politik trifft Git - Umbenennen des Master Branches
Am im Forum: Szenenews

Zitat
Es geht darum wie es das tatsächliche Problem des Rassismus lösen soll.
Ich sehe hier genau 0 Effekt und Sinn darin.
Ich sehe einen negativen Effekt.
Der Tod von G.F. hat viele Menschen für dieses Thema sensibilisiert und wach gerüttelt.
Diskussionen um einen technischen Begriff schrecken hingegen ab. 'Um so'n Quatsch gehts da? Da hab ich selbst wichtigere Probleme.'
Sehr schlecht!

BLM braucht Interesse und Verständnis, nicht Kopfschütteln!

Warum finden in meinem Freundeskreis ausgerechnet Frauen die ach so gelobten Gendersternchen völlig peinlich und sinnlos?
Weil sie sich dadurch blamiert fühlen und sie noch keiner Frau einen gerechten Lohn beschert haben. Same here.

Zitat
Der Konsenz der Gesellschaftswissenschaftler ist hier aber nicht, dass Du mit der Keule alles sofort erschlagen kannst, sondern dass es eben die kleinen Schritte sind, die langsam die Gesellschaft bewegt.
Völlig richtig!

Was passiert hier soeben?
Woanders wird gegen Ausgrenzung, Anfeindungen, Vorurteile, bis hin zum Tod von Menschen protestiert.
Hier fährt eine Diskussion um einen technischen Begriff diesen Protesten in den Weg, man meint fast sie möchte sie in Dringlichkeit und Wirkung noch überholen.
Noch dazu ein Begriff der bis auf Zusammenhänge die keiner kennt nicht auf Slave hinweist, der nicht Unterdrückerbranch oder Sklaventreiberbranch heißt, sondern einfach nur Hauptbranch.
Ist das nicht eben die Keule mit voller Wucht?

Nennt natürlich eure Branches jederzeit wie ihr möchtet. Das stört keinen weil es sowieso kaum jemand bemerken wird (Wirkung??) und es schadet niemandem.
Aber wenn ihr es macht, dann bitte leise und mit Gespür und Respekt.
Bedenkt dass alles verschieden auf Menschen wirkt. Der starke Wunsch etwas zu tun plus die fehlende Möglichkeit in der eigentlichen Sache könnte die Sicht auf diese Wirkung verzerren.

Zitat
Das Egoismus-Argument ist - finde ich - eine Killerphrase, weil man dagegen praktisch nichts mehr einwenden kann.
Wird oft angewendet, in vielen politischen Themen. Dabei wird Nichtwissen ausgeutzt um Zusammenhänge und somit Wikungen einzusetzen die es gar nicht gibt.
Man kann schon etwas einwenden. Wissen!

Thema: Wird ein Objekt, das an einen Task übergeben wird, bei Veränderungen vom Main Thread mit verändert?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zu deinen Zahlen im Task möchte ich anmerken, schau dir genau an was du da machst.

Du erstellst EIN einziges Objekt für alle Tasks. In diesem Objekt änderst du die Zahl.
Diese Zahl gibst du in der Schleife aus nachdem der Task erstellt wurde. Da ist er aber noch nicht tatsächlich aktiv.
Was der Task zur Laufzeit tatsächlich ausliest wenn er irgendwann dran kommt, weißt du nicht.

Wenn der Task ausgeführt wird, sieht er den Wert der gerade im Objekt steht. Welcher das ist, hängt davon ab wie weit die Main Methode gerade ist.

Abhilfe: Jedem Task ein eigenes Objekt erstellen, dessen Zahl einmalig gesetzt wird und dann unverändert bleibt.

Thema: Wie kann ich eine PDF in x64 Anwendung anzeigen (x86 funktioniert)?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Anwendung einfach als x86 belassen geht nicht?

Thema: Wie kann ich eine Variable einer WinForm an eine andere Form übergeben?
Am im Forum: GUI: Windows-Forms

Zitat
Was mir eingefallen ist, man könnte den Namen des WinForm als String an die Methode übertragen

Das funktioniert solange bis du dein Form umbenennst. Dann findet der Vergleich der Namen nichts mehr und du suchst und suchst...

Noch ein offtpoic Hinweis zu deinem Methodennamen SetzenText.
Wenn du deutsche Bezeichner willst, verwende welche.
Wenn du englische Bezeichner willst, verwende welche.
Aber verwende doch keine deutsch klingenden nicht-deutschen Bezeichner ;-)

Thema: Richtiges schließen der Klammern in der Methode zu Lambadaasudrücken
Am im Forum: Grundlagen von C#

Irgendwie ein schönes Beispiel, warum man nicht überall solche Ausdrücke verwenden soll...

Thema: Wie kann ich Linien zeichnen und bei Events Teile der Linien einfärben?
Am im Forum: GUI: Windows-Forms

Linien kannst du ins Bitmap zeichnen.
Wär dann zu überlegen ob du das Bild bei jeder Änderung komplett neu zeichnest, oder nur die Linien übermalst. Letzteres könnte aber zu komischen Effekten führen, also wahrscheinlich lieber alles komplett neu aufbauen.

Thema: Wie kann ich Linien zeichnen und bei Events Teile der Linien einfärben?
Am im Forum: GUI: Windows-Forms

Ich verstehe nicht worauf genau du raus willst.
Willst du "Grafiken einbinden", also bestehende Grafikteile aneinander setzen?
Oder willst du Linien selbst zeichnen?

Für beides eignet sich ein Bitmap, auf dem du arbeitest.

Das Event zum zeichnen ist nicht das richtige für diesen Zweck. Es sagt dir wenn ein Control sich neu darstellen will.

Thema: Wie aus einem unmanaged Bereich eines Array of Structs in Array in managed Bereich kopieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich glaube nicht dass deine Lösung wirklich das Problem behoben hat.
Du erstellst zuerst ein neues Objekt (new Innere) und weist das an innere zu. Dann weist du etwas ganz anderes an innere zu. Das ist als wenn du schreibst
i = 4;
i = 5;

Die Zuweisung von 4 ist überflüssig, da die 4 gleich von der 5 überschrieben wird. In deinem Fall erstellst du ein Objekt (new Innere() ) ohne es zu verwenden.

Thema: Politik trifft Git - Umbenennen des Master Branches
Am im Forum: Szenenews

Zitat
Wem hilft es, wenn mein Hauptbranch nicht mehr master heißt?
Vielleicht dir selbst, bei entsprechenden Reaktionen all derer denen du davon erzählst.

Grundsätzlich ist es doch schön wenn jemand helfen will, diese Einstellung hält die Gesellschaft zusammen.
Sich ein Ersatz Problem an sich selbst zu definieren das man in seiner Situation und Umgebung sehr einfach lösen kann, mag naheliegend sein und ein gutes Gefühl geben.

Das ist auch prinzipiell nichts schlechtes. Selbstverständlich kann jeder seine Branches nennen wie er will und sich dabei gut fühlen.
Solange man das was man tut bitte realistisch sieht und nicht das eigentliche Problem aus den Augen verliert!
Wägt gut ab wie sehr ihr eure gute Tat publiziert, wie viel Wirkung ihr ihr zusprecht und wie intensiv ihr zum nachmachen auffordert. Oder gegen Kritiker vorgehen wollt.

Zusammengefasst. Seid euch bewusst dass das schlimmste was passieren kann nicht nur ein Lächeln des Gegenüber ist. Es wäre schade wenn zu viel Engagement auf einer zu entfernten Nebenbühne bei Betroffenen eher schmerzhaft als lobenswert wirkt.

Thema: Wie kann ich eine for-Schleife zeitversetzt durchlaufen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es gibt Thread.sleep. Sollte man allerdings nicht im Hauptthread verwenden.
Und nachdem es komplexe Konstrukte gibt bei denen man mehrmals hinschauen muss um sie zu verstehen, ist etwas einfaches ja sowieso nicht mehr gewünscht :-)

Thema: Politik trifft Git - Umbenennen des Master Branches
Am im Forum: Szenenews

Ernst gemeinter Rat.
Wenn euch jemand fragt, ob ihr einen Beitrag leisten könnt damit Menschen nicht mehr gedemütigt, beleidigt oder gar getötet werden, sagt um Himmels Willen bitte NICHT "ja, wir nennen Branches und Variablen um".