Jump to content

Anpassungen an Bindings.


The_Real_Black
 Share

Recommended Posts

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.

Link to comment
Share on other sites

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 :D). 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)

Link to comment
Share on other sites

@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!

Link to comment
Share on other sites

@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 ^^

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...