The_Real_Black Geschrieben February 16, 2013 at 12:44 Geschrieben February 16, 2013 at 12:44 Kann man in den Bindings in IPConnection bitte nach dem Verbinden bitte in 2 Eigenschaften bitte Port und Ip Speichern? In C#: string? host { get { return ...}; } int? port{ get { return ...}; } also wenn port.HasValue = false ist, dann gibt es keinen Wert und die Connection ist nicht verbunden. Wenn der Wert gesetzt ist kann man diesen auch nochmal auslesen port.value. Beim Disconect werden diese Werte dann wieder genulled. Beim Enumerieren könnte man dann so einfacher bestimmen von welcher Connection der Call stammt. Zitieren
AuronX Geschrieben February 17, 2013 at 18:54 Geschrieben February 17, 2013 at 18:54 Nullable<string> (string?) macht gar nciht so viel Sinn, weil Strings auch null sein können ;-) Ich bin abre auch dafür, dass diese Dinge per Getter verfügbar sind. Allerdings bin ich kein Freund von int? (habe sogar schonmal bool? gesehen ). Ich denke das gehört zu den Dingen die vermieden werden sollten, wenn es nicht unbedingt notwendig ist (z.B. Kompatibilität mit fremden - nicht beeinflussbaren - Interfaces). Mein Vorschlag: public int Port { get; } public string Host { get; } public int ConnectionState { get; } Bin gerade nicht in Reichweite der aktuellen Bindings und möglicherweise ist der ConnectionState schon verfügbar (und vielleicht sogar als Enum... das wäre cool, aber ist meiner Erinnerung nach nicht so). Ob man dann für Disconnected bestimmtes Verhalten garantiert kann man noch diskutieren. Im vorliegenden Fall wären ja Host: null und Port: 0 durchaus geeignet, da 0 kein gültiger Port ist. P.S.: Zum Erkennen der IPConnection würde ich in der Regel dennoch auf einen Vergleich zurückgreifen. Je nach Anwendungsfall könnte ein Dictionary hilfreich sein. (Eine Aussage die ich blauäugig treffe ohne zu wissen was du genau vor hast) Zitieren
The_Real_Black Geschrieben February 17, 2013 at 21:44 Autor Geschrieben February 17, 2013 at 21:44 @AuronX: Ich wollte als erstes nur den Port der Connection bekommen der Rest war Copy Paste Blödheit ^^ Ja ein "String?" ist nicht nötig da String bereits Null sein darf. Ich könnte auch mit Port 0 leben, aber bei Null Werten ist hier Wirklich nicht gesetzt gemeint. Ich sehe es hier aus einer Datenbank Sicht: Wert ist gesetzt damit ist die Verbindung offen oder es ist nicht gesetzt "null" damit ist es geschlossen. Bei Bool? und Tristate Checkboxen würde es prima passen "Tristate" ungesetzt ansonsten True oder False. Bei String stellt sich die Frage "" oder null leider ist dies für viele Datenbanken Identisch, aber wie würde man es hier dann handhaben auch auf die anderen Schnittstellen betrachtet? Mit Port 0 und Host null wäre ich auch sehr zufrieden! Zitieren
AuronX Geschrieben February 18, 2013 at 19:27 Geschrieben February 18, 2013 at 19:27 @Topic: Da es sich hierbei um ein "ungültig" und nicht um ein "default" handelt wäre ich vermutlich für einen null-string, also nicht String.Empty. @tri-state/OT: Genau das war der use-case, allerdings ist das nur auf den ersten Blick cool. Am Ende hast du dann Code wie diesen: if(myTriState == true) foo; else if(myTriState == false) bar; Und vieles wird komisch und unklar ^^ Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.