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 gfoidl
Thema: Suche nach Bibliothek für automatische Updates einer .Net 5 Anwendung
Am im Forum: Rund um die Programmierung

Hallo,

ohne genaueres von deiner Anwendung zu wissen: ClickOnce wird für .NET 5 unterstützt. Das wäre eine einfache Option.

mfG Gü

Thema: Best Practice Frage zu Exception Handling ASP.NET
Am im Forum: Grundlagen von C#

Hallo degri2006,

Zitat
Ich würde nur die Exceptions catchen
fange nur die Exception die auch behandelt werden können bzw. dessen Behandlung sinnvoll ist.
"Behandeln" ist z.B. Loggen, dem Benutzer zeigen dass etwas nicht passt um es erneut zu versuchen, usw.

Irgendwo in der Anwendung (du schreibst nicht ob es eine Client- / Server-Anwendung ist) sollte allerdings ein "catch all"


try
{
    // Anwendungs-Startpunkt bei Client, z.B. in Main-Methode
}
catch (Exeception ex)
{
    // Loggen, etc.
}
durchgeführt werden, damit es keinen unbehandelten Fehler (unhandled exception) gibt, welche den Prozess terminieren würde.
(Achte auch bei Threads / Tasks darauf dass die nicht unbehandelt bleiben).



mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

es ist eine Binärdatei und der Text den du siehst, wird nur vom Hex-Viewer so dargestellt, da es druckbare ASCII-Zeichen sind.
Daher kann der Suchtext mit entsprechender Kodierung in die binäre Darstellung gebracht und so direkt nach diesem gesucht werden.

Die Dateigröße ist recht überschaubar, daher am einfachsten alles aufeinmal einlesen. Das erspart komplizierteren Code bei dem z.B. in einem Buffer gelesen wird (od. mit Pipelines arbeitet).

Als Anstoss -- v.a. zum Suchen des Suchtextes:


using System;
using System.IO;
using System.Text;

Encoding encoding       = Encoding.GetEncoding("iso-8859-1");   // what's the correct encoding?
const string searchText = "XSA40_DATENSATZ";

ReadOnlySpan<byte> data         = File.ReadAllBytes("Torni.dat");
ReadOnlySpan<byte> searchPhrase = encoding.GetBytes(searchText);

while (!data.IsEmpty)
{
    int index = data.IndexOf(searchPhrase);

    if (index < 0)
    {
        Console.WriteLine("Nothing found :-(");
        break;
    }

    Console.WriteLine($"First occurrance of searchText at position {index}");

    // Move behind the found searchText
    if (data.Length < searchPhrase.Length) break;

    data = data.Slice(index + searchPhrase.Length);

    if (data.Length < 3) break;

    // Move to first int-data
    data = data.Slice(3);

    string value = encoding.GetString(data.Slice(0, 4));
    Console.WriteLine($"Value found: {value}");

    // I'll break here, as it's just a demo for you ;-)
    break;
}

Dabei wird Span verwendet, da sich so das Suchen mit IndexOf trivial gestaltet. Nachdem etwas gefunden wurde, wird mit Slice die Span "zerschnitten", so dass nur mehr der Rest übrig bleibt und dieser kann weiter untersucht werden.

Ganz klar ist mir noch nicht geworden wie und wo und welche Werte gelesen werden sollen. Aber das solltest du selbst schaffen ;-)
Tipp: sollten Zahlen, etc. gelesen werden, so schau dir die BinaryPrimitives-Klasse an, welche perfekt mit Span harmoniert.

BTW: warum baust du in deinem Code einen String zusammen, nur damit dieser dann wieder aufgeteilt werden muss um diesen in ein Dictionary zu stopfen? Das kannst du doch direkt ohne den String auch machen? Aber wie erwähnt, mir ist noch immer nicht ganz klar was es werden soll.


mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
Der Typ der Datei Testdat.dat kann nicht hochgeladen werden.
Z.B. als zip sollte gehen od. umbenennen in Testdat.txt.
Probier das einmal, dann zeig ich ein Demo wie es mit Span und Freu(n)de geht.

mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
also der Suchtext steht als Plain-Text drin.
Als UTF-8 od. wie? Häng am besten so eine Beispiel-Datei an.
Wenns so ist wie ich mir vorstelle, dann lässt sich das elegant lösen -- aber bevor ich ein Demo zeige (da es doch nicht so gebräuchliche APIs sind) will ich gerne sehen wie es konkret ist, nicht dass ich was mache das den Punkt nicht trifft.

Außerdem hab ich oben noch mehr Fragen gestellt. Du willst Hilfe, also bitte ermögliche es den Helfern auch helfen zu können indem du die Fragen beantwortest.

mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
der Suchtext "blabla"
Steht der Suchtext als Text od. auch binär in der Datei?
Zitat
und nach diesem an Position z.B. +540 Zeichen steht das was ich auslesen muss..
Ist der Offset (hier die +540) gegeben od. wie werden diese ermittelt?
Das was du auslesen musst ist was? Ein struct od. etwas protokollbasiertes das geparst werden muss?

Ich frag deshabl, da es mit Span und MemoryMarshal ein paar sehr gute APIs für solche Fälle gibt.
Je nach Größe der Datei (wie groß ist die?) gibt es ev. mit dem SequenceReader eine weitere Alternative um das elegant und performant lesen zu können.

Aber bevor wir uns ev. in etwas verrennen beantworte bitte diese Fragen.
Am besten wäre wenn du ein Beispiel zeigen könntest wie die Datei ausschaut und was das Ergebnis sein soll.

mfG Gü

Thema: Float / Double / Decimal
Am im Forum: Grundlagen von C#

Hallo Crussy,

float und double sind Gleitkommazahlen, die nach IEEE 754 gespeichert werden.
float wird mit 32-bit gespeichert, während double mit 64-bit gespeichert wird, daher auch das "double" für "doppelte Genauigkeit". Da geht es v.a. darum wie die Zahlen und Ergebnisse gerundet werden. Somit können bei float 7-8 Dezimalstellen ohne Genauigkeitsverlust gespeichert werden, bei double sind es schon 15-16.

Der [FAQ] Double und Float: Fehler beim Vergleich und Rundungsfehler geht auf ein paar Eigenheiten dieser Gleitkommazahlen ein.

Wie erwähnt wird bei Operationen mit Gleitkommazahlen das "wahre Ergebnis" gerundet und somit ergeben sich zwangsläufig Rundungsfehler. Für viele Algorithmen spielen diese keine wesentliche Rolle, z.B. in der Thermodynamik ist es egal ob die Temperatur 273,1500001 K od. 273,1500002 K ist. Einen weiteren Ausflug in die Stabilität (Numerik) erspare ich dir hier ;-)

Stell dir nun aber vor es geht um Bank-Geschäfte und bei jeder Transaktion würde ein Rundungsfehler passieren. Nach unzähligen solcher Transaktionen und einer bestimmten Zeit könnten die Rundungsfehler so groß werden, dass die Bilanzen nicht mehr stimmen und das spielt eine wesentliche Rolle. Daher ist sind die o.g. Gleitkommazahlen ungeeignet und deshalb wurde der Datentyp decimal erfunden. Dieser besitzt keine Rundungsfehler und ist somit für Finanz-Mathematik die geieignete Wahl. Allerdings ist das Rechnen mit decimal aufgrund der Genauigkeitsanforderungen und des Wert-Bereichs nicht so performant wie mit den Gleitkomma-Typen double / float und tw. auch nicht anwendbar (da der Wert-Bereich über-/unterschritten wird).

Zusammengefasst:
Finanzmathematik -> decimal
Sonst -> double, außer Anforderungen an die Genauigkeit sind nicht sehr hoch dass float.

Was jedoch "nicht sehr hoch" bedeutet ist von Aufgabe zu Aufgabe verschieden, aber siehe oben bei den Dezimalstellen.

mfG Gü

Thema: Unterschied Prefix & Postfix
Am im Forum: Grundlagen von C#

Hallo Crussy,

Präfix bedeutet "Vorsilbe", Postfix ist die "Nachsilbe". Bezogen aufs Programmieren ist das v.a. in Bezug auf Inkrementoperator.


int i = 42;
i = i + 1;
kann gekürzt werden zu


int i = 42;
i += 1;
und weiter gekürzt zu


int i = 42;
++i;

Hier wurde der Präfix-Inkrementoperator verwendet. Der Unterschied zwischen Präfix-/Postfix-Operator ist das Ergebnis:


int i = 42;
int a = i++;    // a hat den Wert von i (=42) erst danach wird i inkrementiert und hat danach den Wert 43
int b = ++i;    // zuerst wird i inkrementiert und hat den Wert 43+1=44, danach wird dieser Wert b zugewiesen so dass b = 44 ist


mfG Gü

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hallo Th69,

Zitat
Dann sollte es doch kein Problem sein, beim Parsen den passenden Titel aus dem Link (anhand der Thread-ID) zu holen?!

ist es auch nicht. Nur bisher sind wir davon ausgegangen dass die Urls aus der Adressleiste einfach kopiert werden, also z.B. https://mycsharp.de/forum/threads/26594/wie-poste-ich-richtig und nicht eine manuelle gekürzte Url wie https://mycsharp.de/forum/threads/26594 in den Beitrag kopiert wird.

Würde -- auch welchen Gründen auch immer -- das Nachschlagen in der DB nicht klappen, so würde der "Slug" wie wie-poste-ich-richtig als Link-Text verwendet, da dies immer noch besser als die rohe Url ist.

Die Änderung dafür ist schon parat.

Nur aus Interesse: warum "streubst" du dich gegen diese Art der Urls? (vllt. ist mein Eindruck jetzt falsch).

mfG Gü

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hallo Th69,

eigentlich sollte der Titel übernommen werden -- zumindest jener Titel wie er in der DB für den Thread steht.
Kannst du bitte ein Beispiel geben damit das geprüft werden kann? Ich schau auch in den Logs nach ob ich dort etwas finde.

Z.B. https://mycsharp.de/forum/threads/26594/hinweis-wie-poste-ich-richtig wird korrekt übersetzt.
Kann es sein dass du einen "alten Link" hattest? Diese gehen nicht.

Edit: sehe etwas in den Logs das passen könnte. Es geht um https://mycsharp.de/forum/threads/71995 (dein Parser).

mfG Gü

Thema: 2D Char Array Wort finden und Koordinate ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo hannebambellino,

Zitat
Ich habe eine csv Datei, die 12 Felder breit ist und 9 tief.
Genau die wäre interessant -- Beispieldaten und was heraus kommen soll, also wie du dir das Resultat vorstellst.
Dann werden wir schon einen Lösung finden ;-)

BTW: bitte verwendne die Code-Tags -- [Hinweis] Wie poste ich richtig? Punkt 6.

mfG Gü

Thema: 2D Char Array Wort finden und Koordinate ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo hannebambellino,

damit wir alle das gleiche Verständnis vom Problem haben, kannst du eine kleines Demo zeigen?

mfG Gü

Thema: Zeile mit "\x00" einlesen
Am im Forum: Grundlagen von C#

Hallo degri2006,

ich kann das geschilderte Verhalten nicht reproduzieren.
Welche .NET Version verwendet du und welche Culture (normal jene vom Betriebssystem, also de-DE od. de-AT (wie bei mir)).


using System;

string line = "$a=\"blablablablablablablabla\x00\" wide nocase";

string a = line.Split("=")[0];
string b = line.Split("=")[1];

Console.WriteLine(line);
Console.WriteLine(a);
Console.WriteLine(b);

liefert

$a="blablablablablablablabla " wide nocase
$a
"blablablablablablablabla " wide nocase

Die \0 werden / können so nicht dargestellt werden.

BTW: statt "=" (ist ein String) ist es besser die char-Überladung zu verwenden, also


string a = line.Split('=')[0];
string b = line.Split('=')[1];
Hier ist (unter .NET 5.0 und de-AT) das Ergebnis gleich, aber wegen Globalization APIs use ICU libraries on Windows könnte es einen Unterschied machen.

mfG Gü

Thema: PDFs erstellen unter ASP.NET Core
Am im Forum: Web-Technologien

Hallo MrSparkle,

ist XSL-FO eine Option?
Würde zu Templates + Daten ganz gut passen und wenn die "Einstiegshürde" geschafft ist, so ist es relativ trivial zu handhaben. Z.B. mit https://www.nuget.org/packages/Fonet.Standard/

PS: mich wundert es auch (immer wieder) dass es für den de-facto Dokument-Standard PDF keine vernüftigen Lösungen gibt.

mfG Gü

Thema: Wie sperre ich lokale Ports auf einer Windows 10 Maschine?
Am im Forum: Netzwerktechnologien

Hallo Mattes80,

versetzt dich bitte in die Lage von jemanden der nicht weiß worum es geht und lies die Frage.

Welche Code behind?
PC <-> Maschine -- ich kann raten was gemeint ist, aber ist es das dann wirklich?

Wie willst du das "Internet" sperren? Von außen od. soll das der Mitarbeiter am PC an der Maschine einfach sperren / entsperren können?

Welcher Betriebssystem ist vorhanden?

Also bitte konkretere Infos in der Frage, dann ist die Chance auf konkretere Antworter auch höher.

mfG Gü

Thema: Wie kann ich im C# Werte berechnen, so wie Excel das auch macht?
Am im Forum: Rund um die Programmierung

Hallo OXO,

ganz verstanden hab ich nicht was du optimieren willst, aber ich denke es ist Suche nach "Knappsack" bzw. Suche nach "Rucksack".

mfG Gü

Thema: Async Await Verständnis Probleme
Am im Forum: Grundlagen von C#

Hallo Magier69,

Zitat
anfreunden damit...
Ja mach das und probiers einfach aus, dann kannst Freude damit haben das es viel umständlichen Code erspart.

Sonst frag einfach wieder im Forum nach ;-)

mfG Gü

Thema: Async Await Verständnis Probleme
Am im Forum: Grundlagen von C#

Hallo Magier69,

bei deinen Tests hat es keinen Vorteil.

Stell dir aber vor du willst eine IO-Operation (Input, Output) wie z.B. Netwerkzugriffe ala Datenbankabfrage, Web-Request, etc. durchführen so würde bei


var result = service.GetData(...);
UseResult(result);
der ausführende Thread blockiert werden, bis das Ergebnis vorliegt. Das ist nicht ideal.

Daher gibt es asynchrone IO-Vorgänge, bei denen ein Task erzeugt wird und keinen Thread blockiert, sondern bei "Abschluss" des IO-Vorgangs ein sogenannter IO-Thread vom ThreadPool verwendet wird um das "Callback" durchzuführen. Hier eignet sich async/await, da eleganter Code geschrieben werden kann der leserlich ist.


var result = await service.GetDataAsync(...);
UseResult(result);
service.GetDataAsync gibt dabei eine Task zurück, der C#-Compiler erkennt das async/await und erstellt für dich Code der sehr grob analog zu


Task resultTask = service.GetDataAsync(...);
resultTask.ContinueWith(t => UseResult(t.Result));
ist. Da ist der "await Code" schon leserlicher, v.a. wenn mehrere awaits in einer Methode sind.

mfG Gü

Thema: .NET Core und .NET 5 Updates kommen mit dem Windows Update
Am im Forum: Szenenews

Hallo,

ich würde lieber auf die Original-Ankündigung verweisen anstatt zu einem Artikel der im Grunde nur die Info zusammenfasst und selbst auch auf diesen Blog-Beitrag von MS verweist.

mfG Gü

Thema: Die Planung für .NET 6
Am im Forum: Szenenews

Hallo,

Randbemerkung: https://themesof.net/ ist eine Blazor-Anwendung.

mfG Gü

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Hallo,

ein Bug sollte sich im Idealfall durch (Unit-) Tests reproduzieren lassen und falls nicht, so sollte dafür ein Test erstellt werden. Auch damit es später einmal zu keiner Regression kommen kann.

Gibt es jedoch bereits Tests mit passenden Test-Argumenten und der Bug lässt sich dennoch nicht reproduzieren, so mag es u.U. auch am Test-Code selbst liegen.


actual.Should().BeSameAs(actual);

Notiz aus dieser Geschichte:
In solch einem Fall durch bewusste Fehl-Eingaben für den Test, so dass dieser zwangsweise fehlschlagen muss, eine Validierung vom Test-Code vornehmen.
Schlägt der Test nämlich nicht fehl, so ist der Test-Code faul.

Weitere Infos dazu:
Testgetriebene Entwicklung
What is red/green testing?

mfG Gü

Thema: Wie mache ich aus zwei Arrays ein multidimensionales Array?
Am im Forum: Grundlagen von C#

Hallo aloqqq,

Zitat
multidimensionales Array
Muss es ein multidimensionales Array sein?
"Jagged arrays" werden von der .NET Runtime besser unterstützt, falls Leistung ein Kriterium ist.

Auch bieten die jagged Arrays die Möglichkeit die Matrix als Tupel von Spaltenvektoren zu speichern -- du hast das Layout in der Hand. Für dein Beispiel wäre es dann einfach den Vektor in die jeweilige Spalte zu kopieren.


int[] col0 = { 1, 2, 3, 4 };
int[] col1 = { 5, 6, 7, 8 };

int[][] matrix = new int[2][];
matrix[0]      = new int[col0.Length];
matrix[1]      = new int[col1.Length];

col0.CopyTo(matrix[0], 0);
col0.CopyTo(matrix[1], 0);

Es ist auch möglich die Matrix nur in einem (1d) Array zu speichern, so dass einfach Spaltenvektor and Spaltenvektor gehängt wird. Der Zugriff erfolgt dann via entsprechenden Indexer. Grob z.B. so


using System;

int[] col0 = { 1, 2, 3, 4 };
int[] col1 = { 5, 6, 7, 8 };

Matrix matrix = new(4, 2);
matrix.SetColumnVector(col0, 0);
matrix.SetColumnVector(col1, 1);
matrix.Print();

public class Matrix
{
    private readonly int[] _storage;
    private readonly int   _rows;
    private readonly int   _cols;

    public Matrix(int rows, int cols)
    {
        // Argumente sollten hier validiert werden, auch ist auf potentiellen Overflow
        // (durch die Multiplikation) zu achten!
        int size = rows * cols;
        _storage = new int[size];
        _rows    = rows;
        _cols    = cols;
    }

    // Wir verwenden ein "ref return", es wird also die Referenz zum Matrix-Element
    // zurückgegeben. Das erspart uns die Implementierung eines "setters".
    public ref int this[int i, int j]
    {
        get
        {
            if (i ≥ _rows) throw new ArgumentOutOfRangeException(nameof(i));
            if (j ≥ _cols) throw new ArgumentOutOfRangeException(nameof(j));

            // Matrix wird spaltenweise (als Tupel von Spaltenvektoren)
            // gespeichert
            int index = j * _rows + i;
            return ref _storage[index];
        }
    }

    public void SetColumnVector(int[] vector, int j)
    {
        if (vector.Length != _rows) throw new ArgumentException(/* ... */);

        int index = j * _rows;
        Array.Copy(vector, 0, _storage, index, vector.Length);
    }

    public void Print()
    {
        for (int i = 0; i < _rows; ++i)
        {
            for (int j = 0; j < _cols; ++j)
            {
                Console.Write($"{this[i, j]}\t");
            }
            Console.WriteLine();
        }
    }
}


mfG Gü

Thema: Wie kann ich das Fenster "Solution Explorer" in Visual Studio 2019 öffnen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo MMazi,

ja, ist das gleiche -- nur halt in deutscher Sprache.

Aber probiers doch einfach aus (mit dem Draufklicken) ;-)

mfG Gü

Thema: [gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo nochmal,

das muss ich noch ergänzen.

Aaron Robinson, der Autor dieses Features in .NET, hat https://github.com/AaronRobinsonMSFT/DNNE erstellt und baut auf dem Vorgenannten auf. Hier ist es möglich per UnmanagedCallersOnlyAttribute den nativen Export zu erzeugen, aber nicht in .NET 5 selbst.

mfG Gü

Thema: [gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo dannoe,

danke für den Link zum Artikel. Aber dieser ist wirklich schlecht recherchiert und suggiert dass es genügt UnmanagedCallersOnlyAttribute auf eine statische Methode zu setzen und gut ist es. Das ist bei Weitem nicht so (und der Autor sollte sich besser mit anderen Themen beschäftigen).

UnmanagedCallersOnlyAttribute teilt dem JIT mit, dass die so markierte Methode ausschließlich von nicht-verwaltetem Code (~ nativen Code) aufgerufen wird. Somit wird als "function pointer" (erwähnt auch in voriger Antwort) eine leichtgewichtigere Version erstellt, als wenn die Methode auch von managed Code aufgerufen werden würde.

Der wesentliche Hinweis zu Write a custom .NET Core host to control the .NET runtime from your native code fehlt im Artikel, denn somit sind die "native exports" möglich (aber auch schon vor .NET 5, ich glaube fast ab .NET Fx 1.0, also seit Beginn an nur wurde es "vereinfacht" und performanter gemacht).

mfG Gü

Thema: [gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo pollito,

Zitat
falschen Suchbegriffe
mit ".net 5 native exports" wirst du fündig.

Ganz trivial ist die Sache aber nicht, da die CLR selbst gehostet werden muss, anders kann JIT-kompilierter IL-Code auch nicht ausgeführt werden.
Die Pakete, die du finden wirst, machen das nicht anders, nur teilweise eben für dich.

Ich finde die zitierte Aussage vom Artikel ein wenig irreführend bzw. verspricht sie mehr als es ist.

Der "klassische Weg" mit nativen Anwendungen zu kommunizieren bleibt dass .NET eine native Bibliothek aufruft und der native Teil per Callback wieder in .NET zurückrufen kann.
Der Callback war bisher ein Delegate, das wird sich aber mit "function pointers" (von C# 9) ändern.

mfG Gü

Thema: Wie kann ich das Fenster "Solution Explorer" in Visual Studio 2019 öffnen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

es gibt in VS auch eine nette / praktische "search bar".
Ctrl + Q --> Eingabe (hier "solution explorer") --> die Eregbnisse passen meist

mfG Gü

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Hallo,


private static string GetXyzInstanceString()	// Xyz changed from actual name
{
	// We are going to hardcode the value here to 3 (a random number) so that we don't have to
	// ...
	int id = 3;
	return id.ToString(CultureInfo.InvariantCulture);
}

wurde geändert zu


private static string GetXyzInstanceString()	// Xyz changed from actual name
{
	// We are going to hardcode the value here to 3 (a random number) so that we don't have to
	// ...
	return "3";
}

Immer KISS berücksichtigen.

mfG Gü

Thema: Wie gebe ich den Speicher bei Arrays oder Listen wieder frei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo BerndFfm,

die Ursache / Lösung der anderen ist die sauberste Art und Weise das zu handhaben.
Tipp: VS Performance Profiler -> .NET Object Allocation Tracking, dort kannst du die "Wurzeln" betrachten.

Sonst ev. auch Weak References.

mfG Gü

Thema: Unicode-Emojis tun nicht :)
Am im Forum: Wünsche und Kritik

Hallo,

[quote3=mycsharp.de ist nun auf Azure umgezogen,https://www.mycsharp.de/wbb2/thread.php?threadid=121846]
Wir haben damit eine Basis, die es uns insgesamt vereinfacht langfristig von phpBB ganz weg zu kommen, woran wir parallel bereits arbeiten.
[/quote3]

Zitat
Ob auch ein neues Frontend geplant ist, weiß ich nicht.
Technisch gesehen wird das Frontend neu, basiert wie das Backend auf ASP.NET Core 5 und Razor.
Das Erscheinungsbild bleibt aber (zumindest vorläufig) sehr nahe am bisherigen.

Nähere Infos aber dann wenn es soweit ist.
Und gleich vorweg: es ist dann soweit, wenn wir glauben dass es soweit ist ;-)


mfG Gü