Laden...

Klasse ordnen bzw. unterteilen?

Erstellt von gdata vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.216 Views
G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren
Klasse ordnen bzw. unterteilen?

Also, ich hab schon gegoogelt und auch hier im Forum gesucht aber nichts gefunden, daher frage ich jetzt einfach mal. Sollte es dazu hier schon eine Antwort geben, bitte ich dies zu entschuldigen, da ich vermutlich nicht nach dem richtigen gesucht habe bzw. nicht richtig weiß wonach ich suche.

Also ich habe eine Klasse OdfDocument und diese möchte ich untergliedern. Dann hab ich z.B. eine Untergliederung in Attribute mit den Methoden IndexOf, SetAttribute, etc. Aber ich möchte von diesen Methoden aus noch auf die Methoden und Eigenschaften der übergeordneten Klasse zugreifen können...das funktioniert aber irgendwie nicht.

Vielen Dank bereits im Vorraus...

gdata

1.696 Beiträge seit 2006
vor 15 Jahren

Hallo,

funktioniert nicht ist etwas mager, dass man damit was anfangen kann. Was möchtest du eigentlich? Könntest du ein Beispiel geben?

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

2.187 Beiträge seit 2005
vor 15 Jahren

Hallo gdata,

Zum reinen Gliedern/Aufräumen deines Quellcodes gibt es in .NET (bzw. VS) folgende möglichkeiten:

  • Schlüsselwort partial.
  • Prä-Prozessor-Anweisung #region und #endregion

Beide haben aber keine Auswirkung auf die Klasse/Assemblie oder so und verbessern auch nicht deine Software.

Gruß
Juy Juka

G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren

Das meinte ich nicht (trotzdem danke).

Was ich machen will ist eine Unterteilung wie z.b. bei ComboBox.Items, sodass ich alle auf die items bezogenen methoden da "reinstecke".

J
3.331 Beiträge seit 2006
vor 15 Jahren

Die Items sind definiert über eine eigene Klasse, nämlich System.Windows.Forms.ComboBox.ObjectCollection. Aber ob dich das weiterbringt... Jürgen

G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren

hm...nicht wirklich. ich hab schon versucht ne klasse in der klasse zu erzeugen, aber irgendwie kann ich dann nicht mehr auf die properties der übergeordneten klasse zugreifen.

946 Beiträge seit 2008
vor 15 Jahren

aber irgendwie kann ich dann nicht mehr auf die properties der übergeordneten klasse zugreifen.

Das brauchst du ja nicht. Oder: Das solltest du auch nicht.

Mit einer normalen Property

public List<object> Items
{
    get;
    set;
}

hast du alle benötigten Funktionen Insert, Remove, etc.

Mehr macht die ComboBox auch nicht.

mfg
SeeQuark

Gelöschter Account
vor 15 Jahren

aber irgendwie kann ich dann nicht mehr auf die properties der übergeordneten klasse zugreifen.

ja, das nennt man objektorientierung. warum möchtest du denn unterteilen?

G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren

aber irgendwie kann ich dann nicht mehr auf die properties der übergeordneten klasse zugreifen.

ja, das nennt man objektorientierung. warum möchtest du denn unterteilen?

Weil das ganze etwas unübersichtlich ist....ich hab zum beispiel drei methoden die mit append anfangen:

AppendComment(), AppendLine() und AppendInclude(). Wenn ich das gnaze jetz in Comment, Line und Include aufteilen könnte, dann wäre es nunmal...übersichtlicher. Ich will meine Klasse ja nicht nur selber nutzen, sondern auch anderen zur verfügung stellen.

M
11 Beiträge seit 2008
vor 15 Jahren

Vielleicht solltest du dann einfach mehere Klassen aus der einen Klasse erstellen und nicht alles in eine rein hauen ?
Dann hätte man keine Probleme mit den Methodennamen.

mafis90

G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren

Das würde ich auch machen, aber die müssen alle auf die gleichen Daten zugreifen. Das soll so ähnlich wie die XmlDocument Klasse werden (nur nicht für Xml und ohne nodes, etc.), aber die einzelnen methoden müssen auf ein string array zugreifen können, welches das Dokument beinhaltet.

1.002 Beiträge seit 2007
vor 15 Jahren

Hallo gdata,

wenn ich dich richtig verstanden habe, willst du in einer Unterklasse auf eine Methode der Elternklasse zugreifen, richtig? Das würdest du auf die Weise erreichen:

base.MyMethodToCall();

(Was natürlich nur funktioniert, wenn MyMethodToCall() nicht als private markiert ist.)

Nebenbei solltest du für jede Aufgabe bzw. Verantwortlichkeit eine eigene Klasse verwenden (s. Kohäsion).

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

Gelöschter Account
vor 15 Jahren

nein, er möchte aus einer nested class auf die parent class zugreifen und das geht nicht über "base".

G
gdata Themenstarter:in
27 Beiträge seit 2008
vor 15 Jahren

ja, musste ich auch feststellen...trotzdem danke, ich lass es jetz einfach so.

2.187 Beiträge seit 2005
vor 15 Jahren

Hallo gdata,

Wiso müssen alle Objekte auf das Array zugreifen?
Wiso kann die Dokument-Klasse nicht alle "Unter-Objekte" zusammen tragen sobald man sie braucht.

Gruß
Juy Juka