Du erstellst da z.B. mehrere Labels.
Dabei ist relativ viel gleich.
Also raus-factoren in eine CreateLabel Hilfsfunktion.
Das selbe nochmal für PictureBox.
UserControl wie inflames2k vorgeschlagen hat ist aber vermutlich besser. Den Code gibt's dann zwar immer noch in dieser Form, allerdings kümmert sich dann wieder der Forms Designer darum.
nein das war kein muss, ist ja keine schulaufgabe ich persönlich finde switch-case immer eleganter, aber naja. hab es mittlerweile auf if-else umgebaut... ich weine innerlich!
Solange der Speicher reicht.
Ein "double" brauchen 8 Byte, eine Millionen Werte belegen also 8MB. Und soviel zusammenhängenden Speicher bekommst du ohne Probleme.
Ab 1GB, also ca. 125 Millionen Elementen könnte es Probleme geben, bis dahin sollte es glattgehen.
P.S.:
Wenn du also das "richtige" Ergebnis haben willst ... die 1,5 ... dann musst du dafür sorgen, dass der Compiler erkennt, dass mind. eine von den Zahlen, als double erkannt wird.
z.B.
double d = 3.0 / 2;
oder auch
double d = (double)3 / 2;
Das ist so eine Art Assistent. Im "ViewModel" gibt es einen Member der einen Bearbeitungshinweis für den User in der View meldet. In diesem steht ein Verweis auf die Property die der User als nächstes bearbeiten soll. Also soll die View anhand dieser Property in das Control springen das zu dessen Bearbeitung vorgesehen ist ( = TwoWay darauf gebunden ist) Und noch ein Paar andere Klickibuntisachen, aber das wäre mal der Anfang.
das ist irgendwie so einfache Mathematik,
warum rechnest du nicht für die Eck-Punkte des Bildes das mal per Hand und Taschenrechner nach und vegleichst dann im Debugger die Werte?
Dann siehst du doch genau die Zeile im Quelltext, ab der die Werte der Variablen von deiner Erwartung abweichen...
Dafür macht man sich üblicherweise eigene structs bzw. Klassen.
Also ne struct/class GetränkeEigenschaften.
Dann kannst du den ctor von Getränk mit einem einzigen Objekt füttern.
Du solltest uns aber vielleicht schreiben was du wirklich machen willst. Was du beschreibst klingt nämlich nach einem Y eines XY Problems.
Ich arbeite mit dem SDK von SAP Business One bzw dessen Kapselung von Coresuite. Das Problem ist das es dort kein BeginInvoke gibt.
Workaround:
Ich kann WinForms erstellen und mit der Methode LoadToSAP() nach SAP laden lassen, diese Controls auf der WindowsForm haben dann ein BeginInvoke(). Würde es funktionieren wenn ich eine solche Form im Hintergrund laden lasse und dort dann meine Funktionsaufrufe ausführen lasse? Ich probiere es mal aus. Ich dachte es gäbe eine Möglichkeit direkt etwas in die Nachrichtenschleife zu schreiben wenn man die ThreadID weiß.
Andere Möglichkeit:
void ExecuteGuarded(Action a)
{
try
{
a();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
void button1_Click(object sender, EventArgs e)
{
ExecuteGuarded(() =>
{
// Mach was
});
}
Verwende ich massig in z.B. Web-Services, um Exceptions zu loggen und bestimmte Exceptions in andere zu konvertieren (damit der Client in bestimmten Fällen einen "fault" gemeldet bekommt mit dem er etwas anfangen kann).
c#_newbie schrieb:
Wie würde das dann gehen ?
//In FormParent
FormChild child = new FormChild();
child.TopLevel = false;
child.Parent = this;
child.Show();
Allerdings ist das Child dann auf der Form, kein eigenes Fenster. So in etwa wie manche Programme in einen Hauptfenster Unterfenster haben die du verschieben kannst.
MFK schrieb:
Nein, da die Hashes nur für diesen einen Distinct-Aufruf gelten müssen. Damit hast du hier kein Problem mit veränderlichen Membern.
Ahh, hat Klick gemacht, vielen Dank
(Mindestens) Zwei Fehler:
1. Die Initialisierung darfst du nur einmalig außerhalb der Schleife vornehmen
2. Den Seedwert bei der Initialisierung solltest du weglassen (d.h. den Parameter 0), da du sonst bei jedem Programmstart immer wieder die selbe Zufallsfolge erhältst.
Außerdem reicht es, wenn du genau eine Random-Variable erstellt:
Random random = new Random(); // <- ohne Parameter wird die aktuelle Datum/Uhrzeit als Seedwert genommen