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 Papst
Thema: Json Meldung mit Array aus Elementen verschiedener Typen parsen
Am im Forum: Datentechnologien

Oh, du hast Recht - ich habe mich da verlesen. Ich hatte interpretiert, dass die Eigenschaften der Klasse und das enum auf derselben Ebene liegen und nicht als Body Property..

Thema: Json Meldung mit Array aus Elementen verschiedener Typen parsen
Am im Forum: Datentechnologien

Es gibt einige Möglichkeiten, wie du vorgehen kannst. Die von Abt geschilderte hätte eine Änderung der Datenstruktur zur Folge.
Eine andere wäre z.B. mithilfe von JsonObject (Docs) oder JsonDocument (Docs) und dem JSON DOM zu schauen, was der korrekte Typ ist.

Alternativen gibt es noch einige - eigene JsonConverter z.B.

Thema: Injecten von Services in .MAUI Blazor
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ohne einen Service registriert zu haben, wird dir beim erstellen der Component eine Exception erscheinen.
Du könntest einfach einen DesktopDialogService implementieren, der einfach nichts macht (oder das Äquivalent von den Dialogen auf Desktop Ebene darstellt).

Thema: WPF zeige Daten aus Datenstrom
Am im Forum: GUI: WPF und XAML

Hi,

was ist denn myDataStream für eine Datenquelle? Ist das ein Stream?
Wenn du dort aktuell nur eine 0 ausgelesen bekommst, wirst du einfach weiter lesen müssen und dann entweder an CurrentData appenden oder setzen müssen, damit weitere Daten auf deiner UI angezeigt werden.

Thema: Wie kann ich in C# aus einer zweiten Datei "2.cs" Buttons in "1.cs" verändern?
Am im Forum: Grundlagen von C#

Das Prinzip kannst du auch in WPF, UWP und WinUI3 verwenden.

Was für dich vielleicht sinnvoller ist, wäre das umgekehrte Prinzip. Versuch dich mal in der Microsoft Dokumentation in Dependency Injection einzulesen.

Wenn ich dich richtig verstanden habe, willst du in Abhängigkeit von einer Aktivierung o.ä. bestimmte Buttons aktivieren. Also besteht eigentlich keine Abhängigkeit der Visualisierung, sondern eine Abhängigkeit zu den Rechten des aktuellen Anwenders. Diese Rechte könntest du super in einem als Singleton gescopten Service verwalten und über Events oder Subscriptions die Visualisierung benachrichtigen.

Thema: Linq except intersect
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du willst die aber aggregieren?
Was wäre denn deine Kriterien, damit am Ende true herauskommt / bzw was soll bei dem string herauskommen?

Thema: Linq except intersect
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,

sind das Listen mit gemischten Typen oder symbolisieren die "Listen" jeweils Objekte?

Sofern du gemischte Typen hast:
Erstelle dir eine Klasse/Record mit benannten Properties und füge von dieser jeweils eine Instanz (je eine Instanz für Liste 1, 2, 3) zu einer Liste hinzu. Dann kannst du auf der Basis aggregieren.

Thema: Schnapszahl finden
Am im Forum: Grundlagen von C#

Vergleichen könntest du sie auf integer Basis (was etwas komplizierter ist, denn der Computer arbeitet auf binarbasis und du willst auf zehner basis vergleichen) oder auf string Basis.

Für den Anfang ist die string Variante vermutlich einfacher. Grob: Wandele die Zahl in einen string um, schaue für jeden char ab dem zweiten ob er gleich dem vorderen ist.

Thema: CSV Import mit Datum als String
Am im Forum: Grundlagen von C#

Du wirst die CSV Datenspalte parsen müssen. Beim einlesen ist es ja nur ein String.

DateTime (Docs) bietet dafür die statische DateTime.TryParseExact (Docs) Methode an, die auch ein Format entgegennimmt.
Ob du jetzt die Subsekunden Auflösung bei Bankauszügen benötigst sei dahingestellt aber DateTime kann diese auch verwalten.

Dazu sei gesagt: [FAQ] DateTime vs. DateTimeOffset und der Umgang mit Zeiten in .NET

Es gibt verschiedene fertige Libs, die das parsen von CSV vereinfachen. Da musst du dann nicht so viel selber programmieren. Auf Anhieb fällt mir CsvHelper ein.

Thema: Lokale Methode in SplashScreen aufrufen
Am im Forum: GUI: WPF und XAML

Die Antwort auf deine Frage

Zitat von cd77
Konkrete frage: Wie kann ich die lokale Methode (mit der Liste welche nur in Main-Classe verfügbar ist) von einer anderen Klasse (Splash) aufrufen?

ist, indem du entweder eine Statische Methode in der anderen Klasse erzeugst und diese aufrufst, oder in deinem Splashscreen eine Instanz der anderen Klasse erzeugst.
Das löst allerdings dein Problem - wenn, dann nur temporär - nicht.
Was du eigentlich möchtest ist eine saubere [Artikel] Drei-Schichten-Architektur und eine Initialisierung der Datenschicht.

Thema: Aufsummieren in Text Box nach Button Click
Am im Forum: GUI: Windows-Forms

Merkst du, dass das wahnsinnig kompliziert ist, so wie du es aufgebaut hast?

Generell baut man sich für soetwas ein Datenmodell (Grundlegend ist das in [Artikel] Drei-Schichten-Architektur erklärt), in dem Fall würde es reichen sich die Anzahl Tore zu in einem Feld zu speichern (ganz pragmatischer Ansatz) und dann jeweils nur das berechnete Ergebnis in das Textfeld zu schreiben oder gleich auf Datenbindung zu setzen, anstatt jedesmal den geschriebenen string wieder in eine Zahl zu parsen - was übrigens dazu führt, dass dein Programm abstürzt wenn dort einmal keine Zahl drin steht.

Thema: Aufsummieren in Text Box nach Button Click
Am im Forum: GUI: Windows-Forms

Das ist so, weil du immer Text anhängst.

Da wir wissen, was in deinem Control steht, eine generelle Empfehlung:
Bau dir den Text zusammen, so wie er dort stehen soll, z.B. mit


string text = $"Tore {mannschaftstore}";

und setze ihn dann, anstatt zu appenden.

Thema: C# File.Exists
Am im Forum: Grundlagen von C#

Hi,

deine Frage ist recht allgemein formuliert und lässt deswegen viel Spielraum beim beantworten.

Das if statement erwartet in den Klammern einen Ausdruck, welcher einen boolschen Wert (also wahr oder falsch) ergibt. File.Exists gibt bereits einen boolschen Wert zurück, deswegen ist bei dem Ausdruck File.Exists() == true das == true überflüssig, File.Exists ist bereits true. Für false gilt dasselbe, nur eben mit einer negierung.

Wenn du nur prüfen möchtest, ob eine Datei existiert, dann würde also reichen:


if (File.Exists(nameBackup))
{
  // datei existiert
}
else
{
  // datei existiert nicht
}

Thema: Console-Fenster soll bei Fehlermeldung stehen bleiben.
Am im Forum: Grundlagen von C#

Du könntest die Fehlermeldung Loggen, z.B. in eine Datei. Am besten mithilfe eines ordentlichen Logging und Exception Handling Konzeptes.

Wie startest du denn die Anwendung? Per Doppelklick?
Wenn du sie aus einer Console startest, siehst du auch alle ausgaben.

Thema: DateOnly und TimeOnly - die neuen Typen in .NET 6
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Konvertierung von DateTime nach DateTimeOffset funktioniert über einen impliziten Cast.

Aus dem Quellcode von DateTimeOffset:


public static implicit operator DateTimeOffset(DateTime dateTime)

Die Konvertierung sorgt dafür, dass wenn du eine DateTime Objekt übergibts, dass als Kind "Local" ist, die Zeitzone des aktuellen, den Code ausführenden Systems an das neue DateTimeOffset objekt übergeben wird. Ist dein DateTime Objekt UTC, wird ein DateTimeOffset objekt mit Offset = 0 erzeugt.

Es kann dabei zu Problemen kommen, wenn du ein Datum auf einem System verarbeitest, dass in einer anderen Zeitzone steht und du dies nicht erwartest.
Ich würde nach Möglichkeit darauf verzichten DateTime und DateTimeOffset zu mischen.

Thema: Enterprise Projekt auf Mac (Kompatibilität)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

ich habe selber keinen MAC, es gibt allerdings Technologien, die von .NET unterstützt werden aber nicht auf dem MAC lauffähig sind.
Das sind z.B. Windows Forms und WPF.

Die ARM Plattform von Apple wird auch "erst" mit .NET 6 unterstützt.

Thema: Xamarin - Shelly 1 Plus - Digest Authentifizierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Dein HttpClient macht nichts, du verwendest in deinem Code weiterhin den HttpWebRequest.

Thema: Projektvorstellung: LocalizeMe (Typsichere Lokalisierung)
Am im Forum: Projekte

Ich hab mir das Projekt nicht angeschaut, bin aber über das hier im Thread gestolpert:

Zitat von IntelliSoft


namespace dotnetProTest
{
 internal enum Colors
 {
 RedColor
 }
}
Wichtig, daß der Lokalisierungs Name Genau den selben Namen hat, wie die Enum selbst.

Wenn hier wieder Namen übereinstimmen müssen - wo ist dann die Typsicherheit?
Da müsste dann eher ein Quellcode Generator dazwischen, damit das wieder typsicher ist, sonst könnte mir passieren, dass ich den Enum Eintrag RedColour nenne und nichts geht mehr?

Thema: Performante User Logs auf Azure
Am im Forum: Datentechnologien

Wenn du nur nach Datum (und vermutlich Zeit) filterst, könntest du auf den Table Storage gehen. Der ist günstiger als Cosmos DB und bei richtig gewähltem PartitionKey und RowKey geht das einfache filtern auch sehr gut.

Thema: AuthenticationHandler zur Laufzeit hinzufügen (ASP.Net Core, AzureAD)
Am im Forum: Web-Technologien

Authentication Provider zur Laufzeit zu ändern ist durchaus Möglich (wertfrei), es gibt da eine passende Implementierung:
https://github.com/Aguafrommars/DynamicAuthProviders

Meines Wissens ist diese entstanden um IdentityServer 4 zur Laufzeit weitere Federations zu ermöglichen.

Thema: Linq sortierung und summierung
Am im Forum: Grundlagen von C#

Die Controller Action macht eigentlich etwas anderes oder? Ich bin etwas verwirrt

Was genau klappt denn nicht?


 Document document = await _context.Documents.FindAsync(eId);
// document != null ?
           document.Total = _context.PaymentInformations
                                .Where(b => b.Document.Id == eId)
                                .Sum(a => a.PaymentSum);

await _context.SaveChangesAsync();

Sollte prinzipiell das machen, was du möchtest. Die PaymentSum aller PaymentInformations dieses einen Dokuments auslesen und aufsummieren.

Da du aber die neue, übergebene Entität erst danach in die Datenbank speicherst wird diese fehlen.

Ich empfehle einen Blick in den Artikel über [Artikel] Drei-Schichten-Architektur

Thema: Kontinuierliche Mysql Abfrage
Am im Forum: Datentechnologien

Direkt mit der Datenbank wirst du nicht um pollen (abfragen) herumkommen.

Bei solchen Anforderungen setzt man (idr. setzt man immer einen) (Web-)Service zwischen deine Programme und die Datenbank um dann mit Push-Technologien wie z.B. SignalR die Clients zu informieren.

Thema: Wie kann ich AudioGenie3.dll einbinden
Am im Forum: Rund um die Programmierung

Alles in Code Tags zu schreiben ist nicht so angenehm zu lesen

Siehst du den Unterschied zwischen Doku und deiner Implementierung? Du willst einen UInt-Pointer übergeben, erwartet wird ein LPCWSTR. Ein Int16 ist ein short in C#.

Thema: Kalender Ende 2100
Am im Forum: Rund um die Programmierung

Das kommt natürlich auf die interne Datenrepräsentation an.. und kann auch eine Design Entscheidung sein.

Das was du siehst ist ja nur das Frontend der Software und was dort angezeigt wird oder auswählbar ist hat nichts mit dem zu tun, wie etwas hinterher abgespeichert wird.

Thema: c# JSON Api für Personio
Am im Forum: Web-Technologien

Erstelle dir eine Klasse (dafür gibt es Generatoren, die aus dem JSON C# Code erstellen) und lass es dir in diese deserialisieren.

Das würde dir übrigens auch eine Bibliothek wie Refit abnehmen.

Übrigens: der HttpWebRequest, den du verwendest ist veraltet (auch das würde dir refit abnehmen).

Thema: Source Code Generatoren: Basisnamespace einer Class Library ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das klingt ganz gut.. ist aber etwas komplexer in der Umsetzung als der ISourceGenerator.

Vielen Dank - schaue ich mir mal an

Thema: Source Code Generatoren: Basisnamespace einer Class Library ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das kannte ich schon, aber das hilft tatsächlich.

Ich hole mir einfach alle namespaces aller Klassen und nehme den kürzesten.
Alternativ: mit einem eigenen Namespace arbeiten.

Besten Dank!

Thema: TicTacToe Gewinnüberprüfung
Am im Forum: Rund um die Programmierung

Die Gewinnbedingung ist ja, dass drei gleiche Felder in einer Reihe sind. Wenn du also die einzelnen Felder durchgehst würde es reichen alle angrenzenden zu schauen und schauen ob diese übereinstimmen und der gegenüberliegende auch.
Du brauchst (ohne Optimierungen) also nur die inneren Felder durchlaufen und jeweils die angrenzenden Felder prüfen.

Thema: DataGridview Dynamische Farbe
Am im Forum: GUI: Windows-Forms

Wenn du mit Scopes (geschweiften Klammern) arbeitest kannst du dir die zweite Schleife sparen.

Thema: DataGridview Dynamische Farbe
Am im Forum: GUI: Windows-Forms

Schau dir das mal mit dem Debugger an.
Du greifst dort auf die Cells Eigenschaft einer Zeile zu, die alle Zellen der Zeile enthält.
Durch das ToString() erhälst du keinen Fehler, der Rückgabewert von ToString() ist aber vermutlich immer derselbe.

[Artikel] Debugger: Wie verwende ich den von Visual Studio?