Kennung Eins
2004-10-18, 21:24:49
Ich stehe grad vor einem Problem :)
Ich habe eine Klasse, die soll enumerable sein (also IEnumerable und IEnumerator implementiert).
Jetzt moechte ich 3 verschiedene MoveNext() Methoden definieren.
Ich habe das ueber Abstrakte Klassen und Interfaces versucht und jedes Mal haut es mich auf die Schnauze.
Folgendes:interface ITeil1:IEnumerable,IEnumerator
{
new bool MoveNext();
}
interface ITeil2:IEnumerable,IEnumerator
{
new bool MoveNext();
}
interface ITeil3:IEnumerable,IEnumerator
{
new bool MoveNext();
}
public class Haupt:ITeil1,ITeil2,ITeil3
{
<code>
public bool ITeil1.MoveNext()
{
<implementation>
}
public bool ITeil2.MoveNext()
{
<implementation>
}
public bool ITeil3.MoveNext()
{
<implementation>
}
<code>
}Ein erstes Problem ist hier schonmal, dass der verlangt, dass ich ein separates IEnumerable.MoveNext() implementiere.
Warum???? Sollte dar das nicht ueber die anderen Interfaces erben? (Das "new"-keyword im Interface ist nicht der Grund)
Jetzt moechte ich in einer Testklasse das ForEach nutzen.Haupt obj = new Haupt();
foreach (Haupt temp in (ITest1)obj)
Console.WriteLine(temp.ToString());
foreach (Haupt temp in (ITest2)obj)
Console.WriteLine(temp.ToString());
foreach (Haupt temp in (ITest3)obj)
Console.WriteLine(temp.ToString());
Warum geht das nicht? Was ist da falsch dran?
Wie koennte man das besser machen?
Ich waere super dankbar fuer jedwede Hilfe!
(das ist nur eine vereinfachte erdachte Struktur, das Projekt ist eigentlich ein bisschen groesser)
Ich habe eine Klasse, die soll enumerable sein (also IEnumerable und IEnumerator implementiert).
Jetzt moechte ich 3 verschiedene MoveNext() Methoden definieren.
Ich habe das ueber Abstrakte Klassen und Interfaces versucht und jedes Mal haut es mich auf die Schnauze.
Folgendes:interface ITeil1:IEnumerable,IEnumerator
{
new bool MoveNext();
}
interface ITeil2:IEnumerable,IEnumerator
{
new bool MoveNext();
}
interface ITeil3:IEnumerable,IEnumerator
{
new bool MoveNext();
}
public class Haupt:ITeil1,ITeil2,ITeil3
{
<code>
public bool ITeil1.MoveNext()
{
<implementation>
}
public bool ITeil2.MoveNext()
{
<implementation>
}
public bool ITeil3.MoveNext()
{
<implementation>
}
<code>
}Ein erstes Problem ist hier schonmal, dass der verlangt, dass ich ein separates IEnumerable.MoveNext() implementiere.
Warum???? Sollte dar das nicht ueber die anderen Interfaces erben? (Das "new"-keyword im Interface ist nicht der Grund)
Jetzt moechte ich in einer Testklasse das ForEach nutzen.Haupt obj = new Haupt();
foreach (Haupt temp in (ITest1)obj)
Console.WriteLine(temp.ToString());
foreach (Haupt temp in (ITest2)obj)
Console.WriteLine(temp.ToString());
foreach (Haupt temp in (ITest3)obj)
Console.WriteLine(temp.ToString());
Warum geht das nicht? Was ist da falsch dran?
Wie koennte man das besser machen?
Ich waere super dankbar fuer jedwede Hilfe!
(das ist nur eine vereinfachte erdachte Struktur, das Projekt ist eigentlich ein bisschen groesser)