Laden...
Avatar #avatar-3111.jpg
edsplash myCSharp.de - Member
Elektroingenieur i.A. Dabei seit 19.04.2008 390 Beiträge
Benutzerbeschreibung

Forenbeiträge von edsplash Ingesamt 390 Beiträge

09.10.2009 - 09:31 Uhr

Ist es nicht so, dass der XmlSerializer kein Serializable Attribut benötigt?

Gruss

06.10.2009 - 13:36 Uhr

Fällt mir gerade nur http://www.roboternetz.de/ ein.

Gruss

06.10.2009 - 07:59 Uhr

Sobald mein Notebook ankommt werde ich die MSE sicherlich ausprobieren. Der Scanner von TrendMicro lahmt mir zu fest den PC aus beim starten, als das ich ihn noch lange weiter verwenden möchte.

05.10.2009 - 13:18 Uhr

Hallo Zusammen

Vielen Dank für die Klarstellungen (bin mit dem anderen Thread noch nicht ganz durch).
Man lässt sich halt von Sätzen wie

Ausserdem wird häufig auch die Rolle des Modells überdehnt, indem diesem die Verantwortung für Geschäftslogik, Presistenz oder andere zentrale Aspekte zugeschoben wird. gerne verwirren. 😉

05.10.2009 - 10:05 Uhr

Hallo Zusammen

Nachdem ich mir "Entwurfsmuster von Kopf bis Fuss" sowie "Objektorientierte Programmierung" von Galileo zu Gemüte geführt habe. Stelle ich fest, dass diese zwei Bücher eine völlig andere Meinung gegenüber der Aufgabe des Models vertreten. Im FHF geht man davon aus, dass die Anwendungslogik im Model platz findet. Die Autoren von Galileo sind der Meinung, dass das Model NUR für die Daten zuständig ist, also sozusagen ein Abstraktes Spiegelbild dessen darstellt, was auf dem GUI angezeigt wird. Weiter sind sie der Meinung, dass das platzieren von Anwendungslogik in Modellen ein weit verbreitetes Irrtum sei.

Nun zu meiner Frage: Wenn die Anwendungslogik nicht in das Model gehört, was ich irgendwie nachvollziehen kann. Wo findet dann diese ihren Platz? Eine solche Klasse könnte z.b. im Presenter instantiiert werden, so dass die Anwendungslogik die benötigten Aktionen mitbekommt, wobei man dieser Instanz eine Referenz auf das Model übergibt, damit dieses verändert werden kann.

Man kan das auch so verstehen das auf der untersten Schicht des Modells nur die Daten ihren Platz finden, das Modell dann aber eine Instanz einer "Logikklasse" enthält. Was aber imo dann dem "Grundsatz" wiederspräche, dass keine Anwendungslogik ins Model gehört.

Natürlich ist mir klar, dass MVC in unendlichen Varianten verwendet wird und es auf die Situation drauf an kommt, aber irgendwie bieten mir die Antworten aus dem Galileo Buch nicht das, wonach ich gesucht hätte. Sie sagen zwar, dass keine Anwendungslogik in die Models gehört aber wie man dies alternativ lösen soll bleibt irgendwie Links liegen.

Gruss

03.10.2009 - 15:57 Uhr

Mein Tipp: Schau dir zuerst die Sockets an sich an und probiere dort ein paar Sachen aus. TcpListener halte ich für eine schlechte Abstraktion, da man trotzdem wieder Sockets verwenden muss, damit die Sache läuft.

02.10.2009 - 10:32 Uhr

Der Klinkenstecker ist natürlich für mich, wo mein Handy doch vollständig den MP3 Player ersetzt, ein wichtiges Feature.

02.10.2009 - 08:27 Uhr

Hallo Zusammen

Ich habe mir nun das Hero zugelegt. Gründe hierfür waren vorallem die in meinen Augen ausgereiftere Bedienung, der 3.5mm Stecker und der Multitouch. Zudem hatte das Touch Diamond2 im Showroom bereits Luft im Touchscreen eingeschlossen, was nach einigen Monaten passieren kann und so auch bei meinem W960i passiert ist.

29.09.2009 - 21:35 Uhr

zwar nicht unbedingt coding style horror aber trotzdem interessant:

gerade im Quake Live Forum gelesen, wo es darum geht in welcher sprache die engine geschrieben wurde (tatsächlich in C):

C++ is unlikely. All id Tech engines are written in C... I dont see why that should have been changed for QL... You don't really need C++ since you can emulate classes with structs and function pointers... you can completely avoid C++ and co-workers who are fond of obfuscating the codebase by overloading operators.

Schön, dass man Fuktionszeiger in Strukturen laden kann, aber Klassen würde ich das nicht nennen.

Geschweige denn wüsste ich nicht wie man den this zeiger emulieren will 🤔
... ausser natürlich per Parameter, was aber redundant wäre (meineStruktur.Operation(&meineStruktur, ...)

26.09.2009 - 21:00 Uhr

Update im Sinne von "neuere Version" installieren ist afaik möglich,
wie umfangreich die Funktionlalität dort ist, weiss ich allerdings nicht.

Schau dir sonst mal den AppDater an 😉

25.09.2009 - 15:12 Uhr

Das mit dem "überrollt vorkommen" kann ich durchaus bestätigen.

.NET wird meiner Meinung so lange erfolgreich sein, wie Windows vorherrschend ist. Sobald mehrheitlich andere Betriebssysteme benutzt werden, kann sich .NET seine platformunabhängigkeit.. naja lassen wir das 😉.

Komplizierter als C++? vielleicht. .NET bietet halt für viele Problemstellungen bereits Lösungen die de facto Standard sind. Bei C++ stellt sicht zuerst mal die Frage ob man Qt, MFC, ATL oder STL verwenden will. Eine gemeinsame Basis fehlt da.

Ich frage mich auch ob der Vorteil der platformunabhängigkeit gegenüber komplierten, nativen Anwendungen derart gross ist und man sich vorstellen könnte, .NET auch als Klassenbibliothek (ähnlich der STL) anzubieten.

18.09.2009 - 08:35 Uhr

Hallo STEagleEye

Probier es doch mal mit ManualResetEvent.

Damit kannst du den erzeugenden Thread mit WaitOne() solange blockieren, bis der verbrauchende Thread Set() aufruft.

Gruss

16.09.2009 - 17:53 Uhr

Naja.. vom iPhone bin ich nicht wirklich überzeugt. Ist mir ein wenig zu teuer für das, was es kann. Und wenn man es zuerst Knacken muss um eigene Anwendungen zu installieren, die nicht im App Store verfügbar sind... Obwohl ich die Bedienung für durchaus angenehm halte, werde ich mich eher auf HTC beschränken.

Aber danke für den Tipp 😉

15.09.2009 - 18:18 Uhr

Hallo Zusammen

Ich sehe, dass es wieder in Richtung Diamond2 geht 😉
Die Dinger werden mit einem 1140mAh Akku ausgeliefert, welchen man allerdings durch einen 2.8 Ah Modell austauschen kann. Damit dürfe der Akku auch ein paar Tage halten. Weiter mach ich mir keine Sorgen wegen ROMs etc. da ich sowieso ein Modell ohne Provider Branding erwerben werde. Ausserdem soll die HTC Sense Oberfläche bald auch für die Windows Betriebssysteme verfügbar sein.

15.09.2009 - 08:37 Uhr

Hm.. das mit den 2h ist natürlich sehr schwach, auch wenn die Akkuleistung gegenüber dem Vorgänger verbessert wurde. Laut dem Test eines Dritten, läuft das Hero ca. 4 Tage, wenn man 2h Musik hört pro Tag. Also würde ich momentan wieder eher zum Hero tendieren. Aber ich komme wohl nicht drum rum, mir das mal vorführen zu lassen.

Besten Dank

15.09.2009 - 08:04 Uhr

Hallo Zusammen

Ich stehe mal wieder vor einer mehr oder weniger schwierigen Entscheidung:
Ich muss mir nämlich bald ein neues Mobiltelefon zulegen und bin mir im Moment nicht sicher welches von den beiden ich nehmen soll:

Wichtige Unterschiede sind für mich, dass die Akkulaufzeit beim Diamond wesentlich schlechter ist als beim Hero. Die Auflösung des Diamanten mit 800480 allerdings wesentlich besser als diejenige des Heros mit 480320. Da ich das Telefon oft auch als MP3-Player brauche, ist es für mich wichtig, dass das Ding auch dort seinen Dienst tut. Das Hero liegt hier eher vorn, da es direkt eine 3.5mm Anschluss bietet. Auch sei die Oberfläche (laut CHIP-Test) wesentlich schneller und performanter beim Hero, was sie im Test auf die Benutzung des Android Betriebsystem zurückführen. Das führt direkt zu einem weiteren wichtigen Punkt: Das Betriebssystem: Wenn ich natürlich eine Windows CE Platform habe, ist die Verlockung sehr gross dort auch mal Software dafür zu schreiben. Dies ist auf Android natürlich ebenfalls möglich, allerdings in Java.
Auf die Auflösung des Displays kommt es mir im Übrigen nicht wirklich drauf an, ich möchte einfach angenehm im Internet surfen können.

Im Chip Test wird beim Hero die schwache Sprachqualität bemängelt und beim Diamond der schwache Akku, der ca. 2.5h Telefonierzeit durchhält.

Zu welchem Modell würdet ihr eher tendieren, wenn man den Preis mal aussen vor lässt?

Gruss

13.09.2009 - 19:02 Uhr

AFAIK ist Sony Vegas in .NET geschrieben.

10.09.2009 - 07:20 Uhr

Hallo

Ich kenne zwar das Exemplar nicht, kann aber sagen das die "Von Kopf bis Fuss" Reihe wirklich gut ist. Angenehm und unterhaltend Geschrieben und die Bücher Folgen in den wenigsten Fällen sturen Schemas. Vor allem durch die ganzen Kreuzworträtsel und die weiteren "Spiele" macht das Durcharbeiten wirklich spass.

Ich nehme jetzt mal an, dass es in diesem Buch wohl sehr ähnlich sein wird.

Gruss

05.09.2009 - 20:32 Uhr

Friend Klassen wären auch ein ganz nettes Feature.
Was meinst du damit? Geht das nicht mit dem internal Modifizierer?

Mit dem internal Modifizierer können alle Klassen aus der Assembly auf die entsprechenden Member zugreifen, wobei man mit dem friend Modifizierer AFAIK genau definieren kann welche Klasse den Zugriff hat.

Bin ich dagegen. Wenn man Zugriff auf die Private/Protected Elemente einer anderen Klasse benötigt, zeugt das meiner Meinung nach von schlechtem Design.

Wäre aber IMO ideal um das Prinzip der einzigen Verantwortung mit der Datenkapselung zu verbinden. So könnte man z.B. beim Serialisieren auch private Member mit-serialisieren, was ab und zu nötig ist.

Gruss

05.09.2009 - 20:23 Uhr

Friend Klassen wären auch ein ganz nettes Feature. Schön wäre auch wenn C# bzw. .NET endlich mal in der Geschwindigkeit mit nativen Anwendungen konkurrieren könnte.

03.09.2009 - 22:51 Uhr

Solange du immer schön neue Instanzen erstellst, sollte dies kein Problem werden. Die Start Methode kann aber mehrmals aufgerufen werden, wobei dann das Locking im Property fehlt. Ob wohl man Ich würde das aber wie gesagt mit BeginInvoke oder dem ThreadPool lösen. Zudem gibts Du, egal ob der Thread fertig ist, den Wert zurück; Hast also keine Garantie, dass der Wert "vollständig" ist.

Gruss

02.09.2009 - 13:24 Uhr

Ansonsten kannst du die Methode auch Asynchron ausführen. Wird dann in einen Thread des ThreadPools ausgelagert und den Rückgabewert erhält man im Callback.

Gruss

01.09.2009 - 16:55 Uhr

Also lieber double.TryParse etc. verwenden.

Für Benutzereingaben die länderspezifisch sein können sollte man natürlich Parse/TryParse verwenden. Um allerdings eine Textdatei mit Messwerten o.Ä. zu parsen kann das Pattern ganz nützlich sein! 😉

01.09.2009 - 11:38 Uhr

Für float/double/decimal Zahlen: ***?[0-9]+([.][0-9]+)?[/b]

31.08.2009 - 07:51 Uhr

Properties/Member als Referenzen übergeben!


class Program 
  {
    static void Main(string[] args) 
    {
      MyClass foo = new MyClass();

      MyFunc(ref foo.Bar);

      Console.WriteLine(foo.Bar); //23
    }

    static void MyFunc(ref int val) 
    {
      //...
      val = 23;
    }
  }


  class MyClass 
  {
    private int bar;

    public int Bar 
    {
      get { return bar; }
      set { bar = value; }
    }
  }

28.08.2009 - 08:25 Uhr

Hallo Craze89

Es ging im Wesentlichen darum, ob das LogView mit dem StandardView im selben Presenter gehalten wird oder ob dafür ein weiterer Presenter nötig ist. Ich kann mir vorstellen, dass das Logging einen weiteren Aspekt der Anwendung darstellt und darum einen eigenen Presenter erhält. Ähnliche Überlegungen könnte man mit Fehlermeldungen anstellen. Ob es nun einen allgemeinen Presenter gibt für Fehlermeldungen oder die Fehlermeldungen einfach im default View angezeigt werden.

Gruss

27.08.2009 - 16:18 Uhr

Hallo Zusammen

Im Bezug auf MVP habe ich eine Frage, die sich mir langsam aber sicher aufdrängt. Man stelle sich mal folgende Applikation vor:

Der Benutzer kann auf einem UI zwei Zahlen eintippen, die dann addiert werden.
Das UI feuert natürlich nur einen Event und die tatsächliche Addition wird im Model durchgeführt.
Um eine Logging Funktionalität hinzu zu fügen, wird bei jeder Addition im Model ein Event gefeuert, der den aktuellen Log Eintrag beinhaltet.

Was ist nun die bessere Lösung:

  1. Einen zweiten Presenter schreiben, der gezielt uf den "Logging-Event" reagiert und die Logs in einem eigenen View anzeigt.

oder

  1. dem bestehenden Presenter ein zweites View hinzufügen, und die Daten des "Logging-Events" auf diesem View anzeigen.

Gibt es bei einer dieser Methoden markante Nachteile, Vorteile bezüglich Erweiterbarkeit, Testbarkeit etc.?

Natürlich kann ich einen zweiten Presenter einfach an das Model "hängen" (bzw. das Model an den Presenter) und der Presenter ist insofern unabhängig von weiteren Presentern.

Sollte man also die Presenter nach den Anwendungsbereichen gestalten (LoggingPresenter, AdditionPresenter) oder alle Aspekte/Anwendungsbereiche in den selben Presenter drücken ?

Weiter stellt sich mir die Frage, wie man dies grundsätzlich handhabt, wenn sich z.b. das gesamte Aussehen und der Inhalt des Views ändern. Der Zweck des Views also verändert wird. Gehört dies in ein weiteres View, Presenter und das alte hat sozusagen ausgedient ?

Gruss

24.08.2009 - 20:10 Uhr

Kann hier nur Maktone empfehlen. Früher konnte man praktisch alle seiner Werke downloaden. Auch wenn ich sonst kaum solche Musik höre gefällts mir sehr gut 😉

/e
http://www.youtube.com/watch?v=d0_tMTxpSzQ

22.08.2009 - 12:45 Uhr

P3 500 Mhz + Riva TNT2

Lass mich raten, ein Medion mit 64mb Ram?

wenn ich mich recht erinnere etwas selbstkonstruiertes 😉 hab gerade das alte mainboard noch gefunden war ein 450 MHz P3 auf einem sehr interessanten Sockel.
Geht ungefähr in diese Richtung 😉

22.08.2009 - 00:04 Uhr

P1 166 MHz (das da Unreal Tournament drauf "lief" war echt ein wunder)
P3 500 Mhz + Riva TNT2
AMD Athlon 2000+ mit GeForce 4 mit 256MB Ram (war damals ein Highlight einen 128MB Riegel einzubauen 😉
Intel P4 3GHz mit HT und Geforce 6600 + 2GB Ram
Intel C2D E6600 @ 2GHz + ATI 1950 + 2GB Ram
Intel C2D E8500 @ 3.16GHz + ATI HD 4870 + 4GB Ram

21.08.2009 - 18:43 Uhr

Hot Fuzz gehört wohl auch zu den Filmen, die man einfach gesehen haben muss 😉

21.08.2009 - 10:14 Uhr

Genau sowas in der Richtung habe ich gesucht!

Vielen Dank!

21.08.2009 - 08:21 Uhr

Hallo Zusammen

Ich bin auf der Suche nach Kurstunterlagen zu Anfängerkursen in C# und .NET.
Es geht mir vor allem um den logischen Aufbau des Kurses, Kontrollfragen und Übungsaufgaben, wie sie in den meisten Büchern leider nicht vorkommen.
So stelle ich mir bei einem Thema wie Objektorientierung z.b. folgende Übungsaufgabe vor: "Entwerfe eine Klasse die...". Auch sind die Kontrollfragen ein wichtiger Punkt, damit man selbstständig seinen Lernstand überprüfen kann.
Ziel ist es, bestehenden Mitarbeitern möglichst schnell ein Überblick in C# und .NET anzueignen.

Weiss jemand wo man solche Unterlagen herbekommt? Darf natürlich auch etwas kosten. Ansonsten gebe ich auch mit einem Buch zufrieden, dass genannte Kriterien berücksichtigt und in kurzer Zeit durchgearbeitet werden kann.

Habe bei Google leider nichts gefunden und auch sonst scheint das Angebot sehr rar zu sein.

Gruss

20.08.2009 - 07:50 Uhr

Ich habe mal den "Driver Sweeper" drübergelassen, welcher genau solche Treiberleichen finden soll (hat mir allerdings auch den verwendeten Treiber zerschossen). Nach einigen Versuchen könnte ich dann wieder die neuste Version des Treibers/CCC installieren und bis jetzt ist nichts mehr passiert. Interessanterweise waren auch im Eventlog keine Daten zum Absturz zu finden.

Man wird sehen ob es längerfristig geholfen hat 😉

Vielen Dank für die Tipps!

19.08.2009 - 23:12 Uhr

Wenn du das Text Property der TextBox ausliest, kannst du auf die einzelnen Buchstaben bereits über einen Indexer zugreifen.

Also in der Art:

myTextBox.Text[index]

Und wahrscheinlich hast du dich im Forum geirrt 😉

Gruss

16.08.2009 - 19:48 Uhr

Hallo leb0rtran

IMO ist es schlechter Stil, nur wegen einer Wertänderung gleich ein neues Feld zu erstellen, bzw. das bestehende auszublenden. Solche Sachen sollten eindeutig im Konstruktor erledigt werden.

15.08.2009 - 12:35 Uhr

Graka übertaktet? Wie siehts mit der Temperatur aus?

Im Windows ca 63° und beim Spielen kommt sie schon mal gegen 68° rauf. Der FAN läuft aber auch dann nur bei ca 30% Leistung.

Übertaktet ist sie im Übrigen auch nicht.

14.08.2009 - 16:27 Uhr

Hallo Nektarine

Hast du es schonmal mit ShowDialog probiert? sollte imo funktionieren.
Ansonsten habe ich im Kopf das man eine zweite Form ebenfalls mit Application.Run() laufen lassen kann, bin mir aber nicht mehr ganz sicher 😉

13.08.2009 - 19:18 Uhr

Also zum Absturz:

Früher war es so dass die Abstürze eigentlich nur in Rainbow Six Vegas 2 in ganz normalen Situationen aufgetreten sind (Für die die es kennen). Nun passiert es oft in Quake Live! (was ja nicht besonders grafiklastig ist).

Wenn ich VPU-Recover an habe, meldet sich der und teilt mir mit das der Treiber wieder gestartet wurde nach einer Weile kann ich das System dann auch wieder verwenden. Ab und Zu schmiert aber trotz dem VPU Recover alles ab und ich habe plötzlich kein Bild mehr (höre aber z.b. noch Musik). Schalte ich den VPU Recover aus, startet mein PC direkt neu bei einem Absturz und verkündet, dass Windows nach einem schwerwiegenden Crash wieder funktioniert. Ein Fall wo ich mir sicher war warum er abgestürzt ist, ist folgender: Meine geliebte Logitech Tastatur und vorallem die Software dazu pflegen es, wenn man z.b. die Capslock Taste drückt eine Meldung auf dem Bildschirm anzuzeigen. Diese ist in grüner Schrift und praktisch auf den Bildschirm geschrieben (sozusagen Top-Most). Als ich diese Taste ausversehen gedrückt habe während ich im Vollbild war, crashte dann der Treiber. Ich bin mir einfach nicht ganz sicher ob es ein Bug des Spiels ist oder tatsächlich der Grafikkarte oder des Treibers.

13.08.2009 - 10:26 Uhr

Hallo Zusammen

Danke für die Infos und Tipps

PAE ist bei mir aktiviert (laut Everest Ultimate). Das mit der Graka und anderen Karten leuchtet mir ein.

Ich werde die erwähnten Tests trotzdem durchführen (man weiss ja nie).
Ich hatte eigentlich sowiso vor nach dem Release Windows 7 zu installieren, habe aber gedacht, dass was mit meiner Hardware nicht i.O. ist, da sich auch meine Grafikkarte ab und zu abmeldet (VPU Recover).

12.08.2009 - 23:03 Uhr

Einen genauen Wert kann man pauschal nicht sagen, je nach Hardwarekomponenten kann dieser aber einige hundert Megabyte betragen.

einige hundert megabyte aber in meinem Fall wären es ca 1200 MB.
Ich habe gelesen, dass ca. 3.5GB normal seien finde aber die 2.8 ein wenig extrem.
Ich kann vorallem auch nicht ausschliessen das es sich um ein sonstiges Problem handelt.

Aber Danke für den Link!

12.08.2009 - 22:48 Uhr

Hallo Zusammen

Ich habe mir vor kurzem zwei neue Ram Riegel gekauft, um mein System endlich auf 4GB laufen zu lassen. Seitdem zeigt Windows jedoch an, dass ich nur 2.81GB hätte.
Hat jemand eine Idee, an was das liegen könnte?
Vielleicht lassen sich damit auch die etlichen Abstürze des ATi-Treibers erklären.

Mein System
Windows XP Prof SP3
Mainboard: Asus P5B
Ram: 2x 2GB Corsair DDR2-1066
CPU: Intel Core 2 Duo E8500
Grafik: HIS HD 4890, PCI-E x16 2.0, 1GB GDDR5

Was mir aufgefallen ist: Mein Mainboard kann die Rams nur bis 800MHz takten, was allerdings nicht weiter schlimm sein sollte.
Ich habe vor einigen Monaten schonmal eine ATi Karte zurückgegeben (Club 3d HD4850 OC) weil dort auch der Treiber dauernd abgestürzt ist (v.a. bei Games wie RainbowSix Vegas 2) und sich das nur gebessert hat, als ich die Karte manuell runtergetaktet habe! Nun stürzt aber unter der neuen Karte der Treiber auch of ab (nun v.a. bei Quake Live!).

12.08.2009 - 15:47 Uhr

Hallo Zusammen

Ich probiere es vorerst einmal mit der Chain, da mir die Lösung besser gefällt als diejenige des State- o. StrategyPatterns, wobei es wohl in meinem Anwendungsfall kaum einen Unterschied zwischen State oder Strategy gegeben hätte.

Ich habe sie aber so abgeändert, das ich bei erfolgreicher Übereinstimmung (also wenn ein Objekt den String bearbeiten kann) das bearbeitende Objekt zurückgegeben wird und die anderen dann gelöscht (disposed) werden. So habe ich im Endeffekt auch nur ein einzelnes Objekt und nur bei der "Auswahlphase" mehrere.

auf jeden Fall vielen Dank für die Anregungen!

Gruss

12.08.2009 - 14:30 Uhr

Hallo gfoidl

Aber dann müsste ich doch wieder anhand des Strings entscheiden welchen Zustand ich "aktiviere". Was dann wieder in einem folgendem Konstrukt ausartet.


if(myString == "soundso")
{
  state = new SoUndSoState();
}
else if(myString = "oderso")
{
  state = new OderSoState();
}
else if(...)
{
  ...
}
else
{
  ...
}

Und genau so etwas wollte ich eigentlich verhindern, da ich solche Mehrfachverzweigungen oder Switch-Statements nicht gerne einbaue. 😃

12.08.2009 - 14:17 Uhr

Hallo Zusammen

Angenommen ich hätte eine Klasse AbstractParent und mehrere Subklassen (ConcreteChild1,2,3) die eine gewisse Methodik der Oberklasse implementieren.
Nun habe ich einen String der im Prinzip benötigt wird um die Funktionalität auszuführen. Je nach Inhalt dieses Strings ist eine der Unterklassen ConcreteChild1,2 oder 3 am besten (oder überhaupt nur) dafür geeignet um die Aufgabe zu erfüllen. Welche Lösungsmöglichkeiten gibt es, um das Objekt zu erhalten, welches für die entsprechende Aufgabe am besten geeignet ist?

Ich habe mir schon ein paar Lösungsmöglichkeiten ausgesucht, bin mir aber nicht sicher, welche am besten ist!

  1. Da sich der String während der gesamten Ausführung nicht ändert, könnte ich z.b. über Reflection ein neues Objekt erstellen lassen. Der Klassenname müsste sich allerdings über den String herausfinden lassen, was im Prinzip auch möglich ist.

  2. Bin ich mir relativ sicher das mir eine Fabrik nicht weiterhilft, da ich ja dann immernoch auswählen müsste welche konkrete Fabrik verwendet wird um mein Objekt zu erstellen. Diese Lösung nimmt mir also die Entscheidung nicht direkt ab.

  3. Könnte mir eine Chain of Responsibility weiterhelfen, da dann jedes Objekt für sich entscheiden könnte, ob es für die Aufgabe geeignet ist oder ob es diese weiter delegiert.

Ich bin mir wie gesagt nicht direkt sicher welchen Lösungsweg ich einschlagen soll. Natürlich führt 1. mit einer Strategie schnell zum Erfolg. Bei 3. gefällt mir nicht, dass ich von jeder Implementierung ein Objekt benötige, dass dann evtl. während der ganzen Ausführung untätig ist. Wie würdet ihr sowas am besten lösen?

Gruss

10.08.2009 - 07:50 Uhr

Nach so einem Tool habe ich schon lange gesucht 😉 Werde es bei Gelegenheit mal ausprobieren.

06.08.2009 - 13:20 Uhr

Vielleicht ist Hamachi das, wonach du suchst!

05.08.2009 - 14:31 Uhr

Jemand mag sich vielleicht das an das gute alte Unreal Tournament erinnern. Dort gab es einen Leveleditor den UnrealEd und das Bild das im Splashscreen angezeigt wurde hiess eben edsplash.bmp. Und das hat mir auf anhieb gefallen und ist in der Welt der Nicknames praktisch ein Unikat 😉

04.08.2009 - 00:14 Uhr

Hallo michlG,

eigeninitiative ist vorhanden, ich hab mir im debugger den Namen anzeigen lassen. Nur versteh ich nicht, daß bei über 20 eingesetzten Seuerelementen die Schleife einmal durchläuft.

Gruß Danny

  1. Wie viele Elemente sind in der eigentlichen Collection (this.Controls) tatsächlich enthalten (die Elemente die wirklich drin sind, nicht die die drin sein sollten -> Debugger)

  2. Wie äussert sich dieses "Schleife nur einmal durchlaufen"? Möglicherweise hat nur, wie michlG bemerkt hat, ein Element den Namen "adsBool1" und darum hat es für Dich den Anschein als würde die Schleife nur einmal durchlaufen.

Vielleicht bräuchte es mal einen "Wie debugge ich richtig?" Thread 😉

03.08.2009 - 22:42 Uhr

Ist in this.Controls tatsächlich etwas enthalten?
Wenn ja würde ich es eher folgendermassen probieren:


foreach (Control ctrl in this.Controls )
{
  if(ctrl is UserControl){
    if (((UserControl)ctrl).Name == "adsBool1")
    {

    }
  }
}

Wenn du nämlich noch andere Controls im Fenster hast wirft er dir in deinem Code eine Exception, da der Cast nicht funktioniert.

PS: Verwende doch die

 Tags zur Angabe von Quellcode