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: Klasse ohne direkten Namen erstellen
Am im Forum: Grundlagen von C#

Hallo,

ich denke wie gfoidl, dass [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls der Sache am nächsten kommt.

@Palladin007
Bei dynamisch zu erzeugenden Properties funzt das mit dem Dictionary natürlich, aber statt einer GetValue- und SetValue-Methode fände ich hier einen Indexer schöner.
Das Dictionary hat aber allgemien den Nachteil, dass man immer bei GetValue den Rückgabewert nochmal casten muss.

Wenn man bei der Erzeugung schon weiss, wie die Properties heissen sollen (aber nur dann), könnte man ggf. auch mit anonymen Typen arbeiten.

Gruß, MarsStein

Thema: Methoden - Fehler bei Codebeispiel in einem Buch
Am im Forum: Grundlagen von C#

Hallo,

bist Du sicher, dass Du nicht einfach einen Fehler beim abtippen gemacht hast?

"Variable: {0}; Variable: {1)" // <-- da gehört wie im zweiten Beispiel eine geschweifte Klammer hinten hin!!

Gruß, MarsStein

Thema: Notendurchschnitt wird falsch berechnet
Am im Forum: Grundlagen von C#

Hallo,

weil quantity und sum nicht zurück auf 0 gesetzt werden?

Gruß, MarsStein

Thema: [gelöst] UserControl KeyDown aktivieren?
Am im Forum: GUI: WPF und XAML

Hallo,

versuch mal die Lösung aus WPF: Setting Keyboard Focus in a User Control? (Problems with KeyBinding)

Gruß, MarsStein

Thema: JSON Download über HTTPWEBREQUEST
Am im Forum: Netzwerktechnologien

Hallo,

dann schau Dir mal im Firebug oder in den mit Firefox gelieferten Entwickler-Tools die beiden Requests (die im Browser HTML bzw. JSON liefern) genau an (die vollständigen Header). Da muss es irgendwelche Unterschied geben. Wenn Du die findest, kriegst Du bestimmt auch Dein JSON abgerufen.

Gruß, MarsStein

Thema: JSON Download über HTTPWEBREQUEST
Am im Forum: Netzwerktechnologien

Hallo,

möglicherweise hängt das auch mit Cookies zusammen. Sprich, wenn ein bestimmter Cookie gesetzt ist, bekommst Du das JSON, ist er noch nicht gesetzt, bekommst Du das HTML.
Um das zu überprüfen, müsstest Du die Adresse zweimal jhintereinander aufrufen (tust Du ja auch schon), und dabei jeweils die gleiche Instanz des CookieContainers für beide Requests verwenden (statt immer ienen neuen Contaier zu erstellen).

Gruß, MarsStein

Thema: decimal.TryParse schlägt je nach NumberStyles fehl
Am im Forum: Grundlagen von C#

Hallo,

kombiniere einfach beide NumberStyles:

decimal.TryParse(BudgetString, NumberStyles.Float | NumberStyles.AllowThousands, new CultureInfo("de-DE"), out budget)

Gruß, MarsStein

Thema: Screenshot ist beim Ausdruck zu unscharf
Am im Forum: Rund um die Programmierung

Hallo,

Zitat
Beim Ausdrucken wird ein Screenschot erstellt. Dieser wird dann aufgteteilt da die Berechnung mehrere A4 Seiten lang ist.
Du machst einen Screenshot, also das, was auf dem Bildschirm angezeigt wird, und verteilst es auf mehrere A4-Seiten? Dann ist es kein Wunder, dass das unscharf wird.
Allerdings kann ich mir auch überhaupt keine Vorstellung davon machen, wie diese Daten dann auf dem Bildschirm aussehen mögen.
Kannst Du das mal etwas genauer beschreiben, evtl. mit einem exemplarischen Screenshot?

Gruß, MarsStein

[EDIT]ich gebe Abt und Ezio recht, hört sich alles stark danach an, die Daten direkt besser zu drucken[/EDIT]

Thema: Webbrowser Control - Zu viele Benutzer-Objekte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

wb.DocumentCompleted += new   WebBrowserDocumentCompletedEventHandler(webbrowser_DocumentCompleted);

Hängst Du den Handler auch irgendwo wieder ab?

Gruß, MarsStein

Thema: Win CE Gerät MissingMethodException
Am im Forum: Rund um die Programmierung

Hallo,

gibt's zu der Exception auch 'nen Stacktrace?

und:

Zitat
select Visual C# - Smart Device - Windows CE 5.0 under Project Types
Stimmt bei Dir die Version 5.0?

Gruß, MarsStein

Thema: SynchronizationContext - Post-Methode wird nie aufgerufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

versuch mal, Deinen SynchronizationContext umzubiegen, bevor Du die asynchrone Methode HandleInput aufrufst:

        SynchronizationContext lastContext = Synchronizer.Current;

        Synchronizer.SetSynchronizationContext(synchronizer);

        focused.HandleInput();
        synchronizer.ProcessAwaits();

        Synchronizer.SetSynchronizationContext(lastContext);

Sonst landest Du im falschen Kontext!

Gruß, MarsStein

Thema: driver.FindElement div Class Aufruf?? (Selenium WebDirver)
Am im Forum: Grundlagen von C#

Hallo,

wenn's nicht funktioniert, vermute ich, dass Du einfach versuchst auf das falsche Element zu "clicken".
Sicher dass <div class="listitem_new "> der richtige Kandidat ist?

Gruß, MarsStein

Thema: 2D Feld durch gegebenen Schnittpunkt und Radius füllen
Am im Forum: Grafik und Sound

Hallo,

Du kannst Dir entweder einen Algorithmus basteln, der mit Sinus und Cosinus arbeitet, oder vielleicht auch den Bresenham-Algorithmus verwenden.

Gruß, MarsStein

Thema: Humor: Java Programmierer ... und andere lustige Sachen
Am im Forum: Smalltalk

Dazu ist mir gleich das klassische "Pie-Chart" eingefallen:

Thema: Nach Zeilenumbruch in RichTextBox suchen
Am im Forum: GUI: Windows-Forms

Hallo,

schau mal in RichTextBox.Find-Methode (String)

Da steht unter Hinweise im gelb hinterlegten Kasten:

Zitat
Die Find-Methoden, die einen string als Parameter annehmen, können keinen Text finden, der sich über mehrere Textzeilen in der RichTextBox erstreckt. Der Rückgabewert eines solchen Suchvorgangs ist -1.

Dann ist es nicht verwunderlich, dass Du kein Ergebnis bekommst, wenn Du ausgerechnet nach dem Zeilenumbruch suchst...

Gruß, MarsStein

Thema: Wie bringe ich einem Computerprogramm die Sprache bei?
Am im Forum: Smalltalk

Hallo,

das hat mich gerade an einen alten Thread erinnert, den wir hier mal hatten, und dessen Thema in dem Zusammenhang auch interessant sein könnte:

Was ist ein Wort?

Viele Grüße

Thema: Grundsatzfrage zur Übergabe von Feldern bzw. Objekten zwischen 2 Klassen
Am im Forum: Grundlagen von C#

Hallo,

ganz sicher ist es nicht das Schlechteste, sich diesbezüglich an die Field Design-Guidelines von Microsoft zu halten - die übrigens ziemlich genau dem entsprechen, was Abt un Taipi88 sagen.

Es werden lediglich 2 Ausnahmen von dieser Regel gemacht, und die betreffen const und static readonly Felder.

Zitat von MSDN
  • DO use constant fields for constants that will never change.
    The compiler burns the values of const fields directly into calling code. Therefore, const values can never be changed without the risk of breaking compatibility.
  • DO use public static readonly fields for predefined object instances.
    If there are predefined instances of the type, declare them as public read-only static fields of the type itself.

Wichtig dabei ist aber, zu beachten, was da auch noch steht:
Zitat von MSDN
  • DO NOT assign instances of mutable types to readonly fields.

Ein Beispiel für solche Ausnahmen wäre etwa folgendes (vorausgesetzt struct Angle ist immutable implementiert):

public struct Angle
{
    // unveränderliche!! Konstanten
    public const double DegreesInRightAngle = 90.0;
    public const double DegreesInStraightAngle = 180.0;
    public const double DegreesInFullTurn = 360.0;

    // vordefinierte Instanzen
    public static readonly Angle RightAngle = Angle.FromDegrees(DegreesInRightAngle);
    public static readonly Angle StraightAngle = Angle.FromDegrees(DegreesInStraightAngle);
    public static readonly Angle FullTurn = Angle.FromDegrees(DegreesInFullTurn);

    // weitere Implementierung der struct
    ...
}

Gruß, MarsStein

Thema: Top-Level-Klassen => Nested Classes
Am im Forum: Grundlagen von C#

Hallo,

dem Link von inflames2k zufolge ist es so:

Zitat
Geschachtelte Top-Level-Klassen oder -Interfaces sind wie die Paketbestandteile direkt für andere Klassen verfügbar. Es ist nicht erforderlich, zunächst ein Exemplar der umgebenden Klasse zu erzeugen.
Wenn das in Java nur geht, wenn die innere Klasse static ist, ergibt das auch einen Sinn.

In C# wären dann aber alle Nested Classes auch geschachtelte Top-Level-Klassen, sobald sie public sind, denn da kann man dann munter drauf zugreifen ohne Instanz der äußeren Klasse.

Gruß, MarsStein

Edit: Ich bin generell wie meine Vorredner der Ansicht, dass diese Java-Bezeichnung im .NET-Umfeld so nicht existieren und nicht übernommen werden sollten. Das ergibt keinen Sinn und stiftet nur Verwirrung.

Thema: C# - Escapesequenzen direkt in C#
Am im Forum: Smalltalk

Hallo,

jop, schon mal gesehen: so stehts auch in der C# Language Specification, Abschnitt E.3.1

Unter Mono kompiliert der Code übrigens nicht, das x kriegt er noch hin, das abc führt zu

Fehler
The name `abc' does not exist in the current context (CS0103)

Gruß, MarsStein

Thema: Top-Level-Klassen => Nested Classes
Am im Forum: Grundlagen von C#

Hallo,

Zitat von json1948
Wird eine verschachtelte Klasse als static deklariert, dann wird sie zu einer verschachtelten Top-Level Klasse.
Wie kommst Du denn darauf, bzw. was soll das überhaupt bedeuten?
Wenn eine Klasse mit dem Modifizierer static deklariert wird, bedeuted das lediglich, dass auch alle ihre Member static sind (bzw. sein müssen) und somit vollständig ohne Erzeugen einer Instanz darauf zugegriffen werden kann.
Von wo aus der Zugriff auf was erlaubt ist, wird weiterhin über die Modifizierer public/private/internal gesteuert.

Eine Nested Class ist aber auf jeden Fall eine Nested Class und bleibt auch eine, egal ob static oder nicht.

Gruß, MarsStein

Thema: Klick Event auf Dynamisch erzeugten Objekten
Am im Forum: Grundlagen von C#

Hallo,

wenn Du ein Click-Event abonnierst, nekommst Du das geklickte Objekt als object sender übergeben.
Dies kannst Du auswerten, um herauszufinden, um welches Control es sich handelt.

Tipp: Halte dir alle Deine dynamischen Controls am besten in einer Liste, darin kannst Du dann nach dem sender suchen.

Gruß, MarsStein

Thema: Funktion, die feststellt, ob eine Zahl eine perfekte Zahl ist gibt nichts aus
Am im Forum: Grundlagen von C#

Hallo,

if (i % zahl == 0) // Teiler gefunden
Nein. Siehe Modulo-Operator

Gruß, MarsStein

Thema: Funktion, die feststellt, ob eine Zahl eine perfekte Zahl ist gibt nichts aus
Am im Forum: Grundlagen von C#

Hallo,

halte Dich an das was Coffeebean und verwende den Debugger! Dann findest Du Deinen Fehler in wenigen Minuten...

Gruß, MarsStein

Thema: WebBrowserDocumentCompleted geht einfach nicht (immer)
Am im Forum: Rund um die Programmierung

Hallo,

genau so hatte ich es gemeint. Ich habe Deinen Code nur ein ganz klein wenig angepasst (nur ein Form, URL hart codiert), und läuft bei mir problemlos:

   public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted); //1)Handler registrieren
            webBrowser1.Navigate("http://localhost:53646/"); //2) zur Seite navigieren

        }
        private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(DocumentCompleted); //3)den Handler sich selbst deregistrieren lassen
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted2);//4)den Handler einen anderen registrieren lassen
            webBrowser1.Document.GetElementById("suche").SetAttribute("value", "myValue");
            webBrowser1.Document.GetElementById("suchestart").InvokeMember("Click");   //5)Formular abschicken
        }
        private void DocumentCompleted2(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var my = webBrowser1.DocumentText;
            Close(); // <-- hier ein Haltepunkt, dann enthält "my" das Gewünschte
        }

    }

Unter der URL kommt bei mir folgende einfache HTML-Seite zurück:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form method="get">
        <input type="text" value="" id="suche" />
        <input type="submit" id="suchestart" />
    </form>
</body>
</html>

Wie gesagt, das funktioniert! Vom Prinzip her ist das also alles korrekt.

Bei Dir stimmt irgendwas anderes nicht, wo kommen denn Form1 und url her?

Die Instanz von Form1 aus der Du Dein Form2 erzeugst kann an der Stelle ja eigentlich gar nicht bekannt sein...
Ggf. könntest Du auch mal das HTML Deiner Seite posten.

Gruß, MarsStein

Thema: WebBrowserDocumentCompleted geht einfach nicht (immer)
Am im Forum: Rund um die Programmierung

Hallo,

So wie Du es gemacht hast, ergibt das auch alles nicht wirklich Sinn.

Du navigierst zuerst zu der Seite.
Dann setzt Du den Handler -> wenn die Seite zu diesem Zeitpunkt schon geladen ist, wird de rHandler nicht mehr ausgeführt, er sollte auf jeden Fall vorher registriert werden.

Anschließend erwartest Du, dass in webBrowser1.DocumentText das Ergebnis steht... die Suchergebnisse sind dann da aber ganz bestimmt noch nicht drin.
Des weiteren wird vermutlich das InvokeMember("Click") dafür sorgen, dass wieder navigiert wird -> dann landest Du erneut in dem Handler, weil er immer noch registriert ist.

Auf die Art wird das ganze eigentlich eher zum Glücksspiel.

Ich würde Dir empfehlen:
- Handler registrieren
- zur Seite navigieren
- den Handler sich selbst deregistrieren lassen
- den Handler einen anderen (noch zu schreibenden) DocumentCompleted-Handler registrieren lassen, in dem Du das Suchergebnis einsammeln kannst
- dann (immer noch im ersten Handler) das InvokeMember("Click") aufrufen.

Den Timer brauchst Du dann eigentlich gar nicht mehr. Das Close kannst Du auch in dem zweiten Handler aufrufen wenn das Ergebnis da ist.

Wenn die Suche keine neue Seite lädt, sondern über Javascript die Ergebnisse nachlädt, funktioniert das alles allerdings so gar nicht, dann brauchst Du einen komplett anderen Ansatz.


Gruß, MarsStein

Thema: WebBrowserDocumentCompleted geht einfach nicht (immer)
Am im Forum: Rund um die Programmierung

Hallo,

setz den Handler bevor Du Navigate(...) aufrufst.
Es gibt allerdings auch Suchmaschinen, die Dich aussperren wenn sie bemerken dass Du automatisiert suchst.

Gruß, MarsStein

Thema: Mündliche Prüfung Anwendungsentwicklung Präsi Verbesserungsvorschläge
Am im Forum: Smalltalk

Hallo,

bei mir war's damals so, dass in der Präsentation das Abschlussprojekt vorgestellt werden musste (ist halt etliche Jahre her). Falls das bei Euch auch so ist, wird Dir inhaltlich wahrscheinlich keiner was sagen können.
Über die Gestaltung von Folien in Präsentationen findet man ja auch etliches im Netz.
Ich schließe mich da T-Virus an: Viel wichtiger ist, was Du dazu erzählst und wie Du auftrittst.
Du solltest also Deine Präsentation ein paar mal vor dem Spiegel und vor ein paar vertrauten Leuten halten, damit Du etwas Routine damit bekommst.

Gruß, MarsStein

Thema: Was bedeutet diese Interface-Definition?
Am im Forum: Grundlagen von C#

Hallo,

Zitat
ICommandHandler muss jetzt dem Typ von MoveCustomerCommand entsprechen, richtig?
Fast. Wahrscheinlich meinst Du das richtige, drückst es aber ungünstig aus; genau genommen hast Du jetzt eine Klasse , die Dein Interface so implementiert, dass TCommand aus dem Interface der Typ MoveCustomerCommand ist.
Andere Typen kannst Du da jetzt nicht mehr verwenden (es sei denn sie erben von MoveCustomerCommand)

Gruß, MarsStein

Thema: Laufende Schleife via Tastendruck beenden
Am im Forum: Grundlagen von C#

Hallo,

warum hantierst Du da mit geschachtelten Schleifen?
es reicht, wenn Du in der ursprünglichen while(true)-Schleife irgendwo die beiden Zeilen unterbringst:

if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.Enter)
    break;

Gruß, MarsStein

Thema: Korrektes Mashalling in Framework 4.0
Am im Forum: Rund um die Programmierung

Hallo,

das [return: ...] is tein Attribut und gilt für die Funktion, vor der es steht, bei Dir also genau auf die Funktion IO_read_E.
Dass ein int nicht zu einem AnsiBStr gemarshalt werden kann, ist ja auch nachvollziehbar.

Gruß, MarsStein

zu spät, aber jetzt isses geschrieben...