Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C#] Ist das eine gute Datenstruktur? (https://www.delphipraxis.net/118854-%5Bc-%5D-ist-das-eine-gute-datenstruktur.html)

DGL-luke 16. Aug 2008 13:02


[C#] Ist das eine gute Datenstruktur?
 
Hallo,

ich versuche Telnet-VT100 Output zu kapseln. Der Output besteht aus Escapings und ASCII-Text; dabei schaltet ein bestimmter EscapeCode normalerweise eine Formatierung ein, die bis zum nächsten Reset-Escapecode gilt:

Code:
[b]\4;[/b]unterstrichen[b]\31;[/b]unterstrichenundrot[b]\0;[/b]ohne formatierung
Das ist jetzt nicht original-Telnetsyntax, aber so ungefähr siehts aus.

Ich kapsele das jetzt so:

Code:
class MushText
    {
        EscapeCode Code;
        string LiteralText;
        List<MushText> SubTexts = new List<MushText>();
    }
Das Beispiel oben würde dann so geparst werden:

Code:
Code 4 : "unterstrichen" -> Code 31 : "unterstrichenundrot"
Code 0 : "ohne formatierung"
Ich hätte also ein Objekt mit einem Unterobjekt, und danach noch ein einzelnes Objekt.

Hab ich das ganze damit angemessen gekapselt?

Elvis 16. Aug 2008 13:58

Re: [C#] Ist das eine gute Datenstruktur?
 
Zitat:

Zitat von DGL-luke
Hab ich das ganze damit angemessen gekapselt?

Du hast da gar nix gekapselt, bzw. zu sehr gekapselt.
Keiner deiner Werte ist außerhalb der Instanz sichtbar!
Code:
public class MushText
{
  EscapeCode _Code
  public EscapeCode Code
  {
    get{ return _Code;}
  };

  string _LiteralText;
 
  public string LiteralText
  {
    get{ return _LiteralText;}
  }
  readonly List<MushText> _SubTexts = new List<MushText>();
  public IEnumerable<MushText> SubTexts
  {
    get{ return _SubTexts;}
  }

  protected MushText() {}

  public static IEnumerable<MushText> ParseMushTexts(Stream stream)
  {
    using(StreamReader rdr = new StreamReader(stream)
    {
      string line;
      while((line = rdr.ReadLine()) != null)
      {
        MushText item = new MushText();
        // fill here
        yield return item;
      }
    }

  } 
}
btw: Der Bleistift hier is als immutable gedacht. Es sah ganz so aus als würdest du das ganze unveränderlich haben wollen.
Aber vllt weißt du ja gar nicht was du willst? :mrgreen:

DGL-luke 16. Aug 2008 14:48

Re: [C#] Ist das eine gute Datenstruktur?
 
Nö. Ich hab einfach das public davor vergessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz