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 MarsStein
Thema: Beiträge schreiben und Cloudflare
Am im Forum: Wünsche und Kritik

@Palladin007,

danke für den Hinweisnauf uMatrix - werde ich mir mal ansehen (ich nuze immer noch NoScript).

Du hast übrigens Recht - jetzt sehe ich den Cloudflare-Eintragbauch nicht mehr. Vor einer Stunde war er aber noch da, und da hat der Beitragseditor halt nicht funktioniert. Am Cache kanns wohl nicht liegen, der wird bei mir immer geleert, und ich hatte das Prblm auch an verschiedenen Rechnern. Keine Ahnung was da los war. Es gab auchbim Seitenquelltext ein Script von Cloudflare mit "scrape-all-scripts-from-site" oder so ähnlich.

Gruß, MarsStein

Thema: Beiträge schreiben und Cloudflare
Am im Forum: Wünsche und Kritik

Hallo nochmal,

vielen Dank. Es funktioniert ja schon wieder ohne!

Zitat von Abt
Das ist ehrlich gesagt weniger ein Problem von CloudFlare oder MyCSharp.
Verwendest Du einen Scriptblocker, dann musst Du halt damit rechnen, dass was nicht funktioniert.
Ja, das ist schon klar. Die meistennSeiten funktionieren aber trotzdem weitestgehend, wenn man nur ihre eigenen Scripte erlaubt. Gerade Cloudflare taucht häufig auf, wird aber so gut wie nie wirklich benötigt.

Daher auch meine Frage - wenn ich nämlich Cloudflare generell erlaube, bekomme ich von alen möglichen Seiten Scripte untergejubelt, von denen ich nicht will, dass sie laufen, weil sie nicht nötig sind.

Gruß, MarsStein

Thema: Beiträge schreiben und Cloudflare
Am im Forum: Wünsche und Kritik

Hallo,

das Erstellen eines Themas halte ich schon für eine Kernfunktion eines Forums

Gruß, MarsStein

Thema: Beiträge schreiben und Cloudflare
Am im Forum: Wünsche und Kritik

Hallo Abt,

das bringt mir leider nichts. So schlau ist mein Scriptblocker nicht, dass ich Cloudflare nur im Kontext von MyCsharp erlauben könnte. Ich kann es erlauben oder eben nicht - das betrifft dann aber auch andere Sites.
Ich finde es ja OK, wenn statische Inhalte wie Bilder oder Attachments dahun ausgelagert werden.
Aber Scripte?!? Bedauerlich. Zumindest die Kernfunktionalität hätte ich auf dem MyCsharp-Server belassen.

Gruß, MarsStein

Thema: Beiträge schreiben und Cloudflare
Am im Forum: Wünsche und Kritik

Hallo,

mir ist aufgefallen, dass in letzter Zeit der gesamte Editor für Beiträge nicht mehr funktioniert, wenn ich Scripte von Cloudflare blockiere - noch nicht mal die Vorschau oder das Erstellen dieses Threads :(

Ist das wirklich nötig?

Gruß, MarsStein

Thema: ItemsControl: Template Datenbindung an Property ausserhalb der Source
Am im Forum: GUI: WPF und XAML

Hallo,

über RelativeSource FindAncestor fndest Du für gewöhnlich Controls, nicht aber die ViewModels.
Das ViewModel müsste aber als DataContext im Control (bei Dir: im Window, wenn Deine Bezeichnungen stimmen) zu finden sein.
Das Binding müsste also so aussehen (beachte den Path und den Ancestortype):

<Line Stroke="{Binding Path=DataContext.SternbildColor, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}"/>

Gruß, MarsStein

Thema: Wieso bleibt AcceptTcpClient beim TCP Listener hängen?
Am im Forum: Netzwerktechnologien

Hallo,

statt den Code irgendwo unbesehen herzukopieren, und sich dann wundern, dass es nicht 1:1 im eigenen Kontext funktioniert, könntest Du Dir erst mal [FAQ] TcpClient: einfaches Beispiel anschauen - nein, nicht nur anschauen, auch durchlesen - und versuchen, das dort Geschriebene zu verstehen.
Danach solltest Du ein Grundverständnis dafür haben, wie Netzwerkkommunikation funktioniert.

Gruß, MarsStein

Thema: Wie kann ein TCP Server mit mehreren Clients arbeiten?
Am im Forum: Netzwerktechnologien

Hallo,

ich stimme Abt zu. Wenn es um eine Produktivsoftware geht, bitte nicht selber auf TcpListener/TcpClient-Ebene anfangen. Bei allen heutigen Möglichkeiten eignet sich das wirklich nur als Lernthema, oder wenn man was in bestehenden Netzwerksystemen einbinden muss und daher keine anderen Möglichkeiten hat.

Dennoch: Die eigentliche Frage wird in [FAQ] TcpClient: einfaches Beispiel umfangreich behandelt.

Gruß, MarsStein

Thema: [gelöst] Wie stellt man zwei && (etet) in einem String dar?
Am im Forum: GUI: Windows-Forms

Hallo,

das "&"-Zeichen ist in Windows Forms ein Steuerzeichen für Tastaturkürzel (Mnemonics).
Die kannst Du für Dein Label (und alle anderen Controls) auch abschalten:

LblAnzeigeAusdruck1.UseMnemonic = false;

Gruß, MarsStein

Thema: Type Parameter, der ein Interface implementieren muss
Am im Forum: Grundlagen von C#

Hallo,

ThomasE. hat völlig recht. Was Du da machst, kann so nicht funktionieren.

KeyedByTypeCollection<Dictionary<Guid, IComponent>>
hier sagst Du, dass Deine Collection Dictionary<Guid, IComponent> enthält.

Dictionary<Guid, TComponent> GetComponentPool<TComponent>() where TComponent : IComponent
hier willst DU aber Dictionary<Guid, TComponent> zurückgeben. Daher der erste Konvertierungsfehler. Hier müsstest Du auch Dictionary<Guid, IComponent> zurückgeben.

componentPools.Add(new Dictionary<Guid, TComponent>());
genauso müsstest Du hier nicht Dictionary<Guid, TComponent> erstellen und hinzufügen sondern ebenfalls ein new Dictionary<Guid, IComponent>(). Daher der zweite Konvertierungsfehler.

Ob dann der Zweck so wie gedacht weiterhin erfüllt wird und/oder der Indexer von KeyedByTypeCollection richtig funktioniert, kann ich so nicht sagen.

Gruß, MarsStein

Thema: Gibt es Portale für Freelancer, die ihr empfehlen könnt?
Am im Forum: Smalltalk

Hallo,

GULP ist ziemlich bekannt.
Da ich selbst kein Freelancer bin, habe ich es noch nicht selbst genutzt, habe aber gelegentlich mal mit Leuten zusammengearbeitet, die von da kamen.

Gruß, MarsStein

Thema: IP-Endpoint an Socket binden
Am im Forum: Rund um die Programmierung

Hallo,

Socket.Bind will Deine lokale Adresse haben (oder Du könntest IPAddress.Any nehmen).
Die Adresse der Gegenstelle bekommst Du dann mit, wenn Du den Broadcast empfängst.

Beachte aber auch, dass Deine lokale IP (192.168.200.231/255.255.255.0) in einem anderen Subnetz liegt, als die IP, die Du in Deinem Code verwendest (also vermutlich die Server-IP).

Des weiteren würde ich Dir empfehlen, statt Socket den UdpClient zu verwenden.

Gruß, MarsStein

Thema: Client/Server Socket-Verbindung Ver- und Entschlüsselung von Files mit NetworkStream
Am im Forum: Netzwerktechnologien

Hallo,

Du benutzt offenbar dieselbe Transform(...)-Methode für das Ver- und Entschlüsseln.

Das kann aber nicht funktionieren.
Beim Entschlüsseln müsstest Du den CryptoStream auf der source erstellen und CryptoStreamMode.Read verwenden.

Außerdem ist such ICryptoTransfrom ein IDisposable und sollte disposed werden.

Gruß, MarsStein

Thema: WPF und Standardnamespace - doppelter Root?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

also ehrlich gesagt versteh ich es auch nicht so ganz - könnte an der Beschreibung liegen
Ich vermute, dass hier die entscheidende Information noch fehlt.

@Ichthys

Zitat
Und das passiert bei mir bei einer frisch erstellten WPF-Anwendung
kannst Du dann mal eine minimale Beispiel-Solution zippen und hochladen, die den Fehler aufweist?
Dann kann man das vielleicht nachvollziehen.

Gruß, MarsStein

Edit: und verrat uns bitte, mit welcher VS-Version Du arbeitest...

Thema: Mehrere Kreise mit Nummern erstellen
Am im Forum: Grafik und Sound

Hallo,

wenn die Darstellung irgendwann so aussehen soll wie im Bildanhang, dann solltest Du Dir mal Graphics.RotateTransform ansehen. Damit werden dann auch die Zahlen entsprechend mitrotiert/gekippt.
Überhaupt ist diese Aufgabe damit viel einfacher lösbar, Du brauchst dann die ganzen Sinus/Cosinus Berchnungen nicht - du rotierst einfach die Zeichenebene immer weiter um einen bestimmten Winkel und kannst dadurch jede Zahl quasi immer an die selbe xy-Koordinate zeichnen.

Gruß, MarsStein

Thema: Steuerzeichen bei Chunked Transfer Encoding nicht vorhanden
Am im Forum: Netzwerktechnologien

Hallo,

der ResponseStream der HttpWebResponse gibt Dir - wie Du schon festgestellt hast - nur die Nutzdaten raus. Das Parsen der Chunks wird bereits intern gemacht.

Das ist normalerweise auch das, was man will - schließlich handelt es sich trotz der Chunks um eine zusammenhängende Response. Die ist eigentlich nicht dafür gedacht, in der Zusammensetzung der Chunks eine Semantik unterzubringen, sondern um bei aufwändiger Generierung einer Response bereits fertige Teile schon mal an den Client zu senden.

Das kannst Du Dir in den .NET-Quellen ansehen:
GetResponseStream erstellt intern einen ConnectStream, der im Konstruktor bereits den ChunkParser erstellt. Du wirst an die Chunk-Metadaten mit HttpWebResponse also nicht so einfach drankommen.

Gruß, MarsStein

Thema: 4 TextBoxen, 1 davon soll mit einem Wert befüllt werden. Auswahl d. TextBox soll zufällig sein!
Am im Forum: Grundlagen von C#

Hallo,

Zitat
und dann quasi (einfach ausgedrückt) TextBox+Zufallsbox = Ergebnis;
siehe dazu auch [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls

Gruß, MarsStein

Thema: Alle in IIS gehosteten Webservices ermitteln
Am im Forum: Netzwerktechnologien

Hallo,

schau Dich mal im Microsoft.Web.Administration Namespace um.
Da solltest Du alles Nötige finden.
Der ServerManager ist ein guter Einstiegspunkt.

Gruß, MarsStein

Edit: Upps... ob Du da von remote drankommst, weiss ich aber nicht...

Thema: Microsoft Cloud Deutschland nicht mehr für Neukunden verfügbar
Am im Forum: Szenenews

Hallo Abt,

Zitat von Abt
Eine Aussage wie
Zitat von MarsStein
Aber tja, so ist das eben, wenn man in die Cloud geht. Dann muss man zumindest mit so etwas rechnen.

empfinde ich darüber hinaus höchst unseriös. Stammtisch-Gerede.
Das ist leider typisch Deutsch und sehe ich auch immer nur in DE: Hauptsache den Leuten Angst machen statt sie sauber aufzuklären!
Eine absolut unseriöse Aussage, die schmerzlich und völlig falsch beinhaltet, dass die Cloud pauschal unsicherer ist. Absolut fahrlässig!
Da hast Du meinen Satz aber gründlich aus dem Kontext gerissen. Direkt im Satz vorher hatte ich auch geschrieben:
Zitat von MarsStein
Ich halte es generell schon für möglich, aber nicht für zwingend, dass dann ggf. eine Herausgabe von den Amerikanern erzwungen werden kann.
Eine Aussage, dass die Cloud pauschal unsicher sei, kann ich in diesem Kontext nicht erkennen, und war auch nicht beabsichtigt.

Ich habe auch überhaupt nix dagegen, wenn sich Firmen in der Cloud austoben und dort die (zugegeben hervorragenden) Rechenpower- und Skalierungsmöglichkeiten nutzen.
Ich habe nur etwas gegen den allgemeinen Trend, dass man als als Endnutzer mehr und mehr förmlich dazu gedrängt wird, persönliche Daten in der Cloud abzulegen oder durch Anbieter ablegen zu lassen.

Gruß, MarsStein

Thema: Unterordner suchen, die mit XYZ_ beginnen
Am im Forum: Grundlagen von C#

Hallo,

Zitat von MarsStein
Die Überladung, die einen String annimmt, kannst Du ein Suchmuster angeben.
Das gibt Dir wieder eine Auflistung von DirectoryInfo, die dem Suchmuster entsprechen.
Also einfacher geht's nun wirklich nicht. Die Suchmuster unterstützen auch Wildcards wie XYZ_*.
Hast Du Dir die verlinkten Dokuseiten überhaupt angeschaut?

Gruß, MarsSTein

Thema: Unterordner suchen, die mit XYZ_ beginnen
Am im Forum: Grundlagen von C#

Hallo,

Mach Dir zuerst mal eine DirectoryInfo mit dem Basispfad, in dem Du suchen willst.
Dann kannst Du mittels DirectoryInfo.GetDirectories kannst DU nach den gewünschten Ordnern suchen. Die Überladung, die einen String annimmt, kannst Du ein Suchmuster angeben.
Das gibt Dir wieder eine Auflistung von DirectoryInfo, die dem Suchmuster entsprechen.
Das gleiche nochmal für den "enthaltenen Ordner X".
Und da kannst du dann analog mit DirectoryInfoGetFiles nach der gewünschten Datei suchen.

Gruß, MarsStein

Edit: Oder eben rekursiv, wie Coffeebean vorgeschlagen hat.

Thema: Microsoft Cloud Deutschland nicht mehr für Neukunden verfügbar
Am im Forum: Szenenews

Hallo,

Zitat von Palin
Wenn Microsoft jetzt wider selber Zugang zu den Servern hat, können die US-Behörden sie dazu zwingen dort gespeicherte Daten herauszugeben.
Es geht nicht um den Zugang, sondern ob die Server von Microsoft betrieben werden.
Der CLOUD Act kann also nur greifen, wenn Microsoft (oder ein anderes amerikanisches Unternehmen) in Zukunft wieder selbst der Betreiber der Server ist.
Ob das juristisch einen Unterschied macht, ob Microsoft USA oder Microsoft Deutschland (oder eine anderen europäischen Niederlassung) die Server betreibt, kann ich nicht sagen - bin halt kein Jurist, und habe auch nicht wirklich Lust, mich in der Materie schlau zu machen.
Ich halte es generell schon für möglich, aber nicht für zwingend, dass dann ggf. eine Herausgabe von den Amerikanern erzwungen werden kann.
Aber tja, so ist das eben, wenn man in die Cloud geht. Dann muss man zumindest mit so etwas rechnen.

Gruß, MarsStein

Thema: Microsoft Cloud Deutschland nicht mehr für Neukunden verfügbar
Am im Forum: Szenenews

Hallo,

in dem Artikel wird ja nur aufgezeigt, dass der Server aus der Deutschland-Cloud mit einem von Microsoft (irgendwo) betriebenen Server kommuniziert.
Das finde ich nun im Zusammenhang mit Azure nicht wirklich verwuderlich, und von einer Übertragung personenbezogener Daten ist gar keine Rede. Wenn da Telemetriedaten fließen, dann halt auch nur mit der Server-IP (wären es die IPs der Clients, wäre das was anderes, davon war aber im Artikel keine Rede).

Insofern finde ich den Artikel jetzt auch nicht so doll - den Cloud-Hype aber übrigens auch nicht

Gruß, MarsStein

Thema: Chunksize in HTTP Protokollen richtig verarbeiten
Am im Forum: Netzwerktechnologien

Hallo,

das liegt daran, dass Du zuerst mit dem StreamReader auf den Stream losgehst, und anschließend versuchst, direkt einzelne Bytes aus dem Stream zu lesen.

Der StreamReader verwendet einen internen Lesepuffer, den er erst mal füllt. Dadurch liest er Dir dann schon einige Bytes unterm Hintern weg, und wenn Du die einzelnen Bytes lesen willst, ist der NetworkStream schon ein Stück weiter, als Du es erwartest.

Du kannst das mit dem StreamReader machen, dann musst Du aber alles damit lesen.
Dann brauchst Du aber auch noch einen StreamWriter, der dir das wieder sauber wegschreibt in einen MemoryStream.
Achtung: Du brauchst dann ein 8-Bit Encoding im StreamReader und das gleiche nochmal im StreamWriter, mit einem Multibyte-Encoding wird das nix (und mit ASCII auch nicht), vor allem weil Du mit Accept-Encoding: gzip, deflate mit Sicherheit Binärdaten erhältst. Du kannst z.B. Encoding.Default verwenden (nicht zu verwechseln mit dem standardmäßigen Encoding des StreamReaders, das ist nämlich UTF8).

Also sowas würde funktioieren:

           StreamReader reader = new StreamReader(stream, Encoding.Default);

           //... deine ganze Header-Ausgabe

            string hexChunkSize = reader.ReadLine();
            int decChunkSizeInt = Convert.ToInt32(hexChunkSize, 16);
            Console.WriteLine("ChunkSize (HEX): " + hexChunkSize);
            Console.WriteLine("ChunkSize (DEC): " + decChunkSizeInt);
            
            MemoryStream ms = new MemoryStream();
            StreamWriter writer = new StreamWriter(ms, Encoding.Default);
            while (decChunkSizeInt > 0)
            {
                var content = new char[decChunkSizeInt];
                reader.ReadBlock(content, 0, decChunkSizeInt);
                writer.Write(content);
                
                // am Ende des Chunks das CRLF lesen
                reader.ReadLine();

                // und ab in die nächste Runde
                hexChunkSize = reader.ReadLine();
                decChunkSizeInt = Convert.ToInt32(hexChunkSize, 16);
                Console.WriteLine("ChunkSize (HEX): " + hexChunkSize);
                Console.WriteLine("ChunkSize (DEC): " + decChunkSizeInt);
            }
            writer.Flush();
            // jezt stehen im MemoryStream genau die Nutzdaten, allerdings binär wegen gzip/deflate,   
            // die musst Du dann noch auspacken

Die bessere Lösung:
Besser ist es meiner Ansicht nach aber, die Daten gar nicht als Text zu verhackstücken, sondern direkt alles binär aus dem Stream zu lesen - weil es sich ja auch um Binärdaten handelt.
Dazu brauchst Du erst mal eine Hilfsmethode, die ein Zeilenende erkennt. Nach HTTP-Spezifikation kannst Du Dich dabei auf CRLF verlassen:

        static byte[] ReadLine(NetworkStream stream)
        {
            MemoryStream ms = new MemoryStream();
            int b;
            while((b = stream.ReadByte()) != -1)
            {
                if (b == 13)
                {
                    b = stream.ReadByte();
                    if (b == 10 || b == -1)
                        break;
                }
                ms.WriteByte((byte)b);
            }
            return ms.ToArray();
        }

Diese kannst Du dann nutzen:

            // die Ausgabe der Header erfolgt dann mit
            Console.WriteLine(Encoding.ASCII.GetString(ReadLine(stream)));
            //... und die anderen Zeilen dazu

            // Chunksize in Dezimalzahl umwandeln und ausgeben
            string hexChunkSize = Encoding.ASCII.GetString(ReadLine(stream));
            int decChunkSizeInt = Convert.ToInt32(hexChunkSize, 16);
            Console.WriteLine("ChunkSize (HEX): " + hexChunkSize);
            Console.WriteLine("ChunkSize (DEC): " + decChunkSizeInt);
 
            MemoryStream ms = new MemoryStream();
            while(decChunkSizeInt > 0)
            {
                byte[] buffer = new byte[decChunkSizeInt];
                stream.Read(buffer, 0, buffer.Length);
                ms.Write(buffer, 0, buffer.Length);

                // am Ende des Chunks das CRLF lesen
                ReadLine(stream);

                // und ab in die nächste Runde
                hexChunkSize = Encoding.ASCII.GetString(ReadLine(stream));
                decChunkSizeInt = Convert.ToInt32(hexChunkSize, 16);
                Console.WriteLine("ChunkSize (HEX): " + hexChunkSize);
                Console.WriteLine("ChunkSize (DEC): " + decChunkSizeInt);
            }
            // jezt stehen im MemoryStream genau die Nutzdaten, allerdings binär wegen gzip/deflate,   
            // die musst Du dann noch auspacken

Gruß, MarsStein

Thema: T als Returnwert - Verständnisproblem
Am im Forum: Grundlagen von C#

Hallo,

genau das meine ich aber mit:

Zitat
dass die konkreten Typen, die für die Typargumente eingesetzt werden, zur Compilezeit feststehen
Die kannst Du eben nicht aus einer Funktion heraus erzeugen, da der Compiler den Code dieser Funktion ausführen müsste, damit der Typ zur Compilezeit bekannt wäre. Das kann und tut er aber nicht. Daher müssen die konkreten Typen bei Nutzung von Generics direkt im Code angegeben werden und nicht dynamisch (per Code) irgendwo hergezaubert werden.

Gruß, MarsStein

Thema: T als Returnwert - Verständnisproblem
Am im Forum: Grundlagen von C#

Hallo,

@Glowhollow,
was Du da vorhast, geht so nicht.*
Das erstellen generischer Objekten und der Aufruf generischer Funktionen erfordern, dass die konkreten Typen, die für die Typargumente eingesetzt werden, zur Compilezeit feststehen (und nicht erst zur Laufzeit).

*Sowas kann man theoretisch dann über Reflection und den Emitter auch zur Laufzeit erzeugen - aber das hier durchzukauen wäre wohl etwas am Thema vorbei.

Gruß, MarsStein

Thema: Erfassen, welches Object sich gerade im Drag und Drop befindet außerhalb der Form
Am im Forum: GUI: Windows-Forms

Hallo,

eine Lösung habe ich jetzt nicht für Dich.
Aber Du solltest vielleicht bedenken:

Zitat
Wenn nun irgendwo (HookCallback der user32.dll) die Maus länger als 2 Sekunden betätigt wird öffnet sich die Form und der Anwender kann das Objekt in die Form ziehen und dort "droppen"
Ist das eine Anforderung, oder eine Idee von Dir?
Ich würde eher den User das Fenster vorher selbst öffnen lassen - ich würde mich jedenfalls herzlich bedanken, wenn ich ein Objekt irgendwo anders hin draggen will, dann plötzlich eine Form aufploppt und sich über mein eigentliches Zielfenster legt...

Gruß, MarsStein

Thema: Windows Freigabeordner per UMC Pfad erstellen
Am im Forum: Netzwerktechnologien

Hallo,

ich schätze mal, Du musst einen Konstruktor von ManagementClass benutzen, dem Du ein ManagementScope übergeben kannst, und in diesem ManagementScope den anderen Rechner angeben.

Gruß, MarsStein

Thema: Didaktisches Konzept in Foren: wie hilft man richtig?
Am im Forum: Smalltalk

Hallo zusammen,

das ist ja mal eine interessante Diskussion - zu der ich jetzt auch noch was beitragen möchte:

Zitat von Palin
Sondern eher darum ob es nicht vielleicht sinnvoll ist, ihn erst mal die Frage zu beantworten, die er zu den Arrays hat und ihn dann noch einen Anderen Weg aufzuzeigen. Anstatt um es vereinfacht wider zu geben zu sagen: „Arrays sind doof benutze Listen“.
Exakt. Genau meine Meinung

Abgelöst vom konkreten Beispiel möchte ich das noch etwas verallgemeinern. Ich habe in meiner langjährigen Zeit als Helfer es meistens so gehalten (oder es zumindest versucht):
Wenn es explizite Fragen gibt, versuche ich immer, diese auch zu beantworten - teilweise sogar im Nachhinein, wenn schon bessere Lösungen genannt wurden.
Gerade einem Anfänger nutzt es meist wenig, bzw. ist es vermutlich auch abschreckend, wenn man einfach nur sagt, Dein Ansatz ist schlecht, mach es lieber anders. Damit hilft man am Ende zwar auch dem Fragesteller ans Ziel - trotzdem sollte ihm IMO erst einmal mit seinen aktuellen Verständnisproblemen geholfen werden.

Gleichwohl darf natürlich der Hinweis auch nicht fehlen, das es wesentlich bessere Ansätze gibt. Warum diese Ansätze nun besser sind, kann der Fragesteller (wieder gerade, wenn es sich um einen Anfänger handelt) aber erst verstehen, wenn er sein ursprüngliches Problem verstanden hat - auch wenn die Lösung weit davon entfernt ist, gängig oder ideal zu sein.
Denn dann wird er selber sehen und beurteilen können, das er auf dem Holzweg war, und mit einem anderen Ansatz besser fährt.

Der beste Lerneffekt wird IMO also dadurch erzielt, erstmal das vorhandene Problem zu durchleuchten. Dann aber auch gleichzeitig dazu anzuregen, sich über eine bessere Lösung Gedanken zu machen, und dabei auch gleich einen Stups in die richtige Richtung zu geben (allerdings ohne ihm dabei die Lösung vorzukauen - Stichwort Fisch).

Gruß, MarsStein

Thema: Instanziierung Variablen mit @ anfangend - pro / contra
Am im Forum: Grundlagen von C#

Hallo,

das @ gehört meiner Ansicht nach nur vorangestellt, wenn man tatsächlich Schlüsselwörter aus C# als Variblenname verwendet.
In Sollte man Keywords als Identifier verwenden? habe ich mal beschrieben, wann so etwas sinnvoll ist. In allen anderen Fällen sollte man davon die Finger lassen.

Gruß, MarsStein