私はclassTwoを数えることに目を向けようとしてきましたが、私が見ているリソースのほとんどがそれらのコードのこのセクションを持っているので、私はかなり理解していません...Invalid Casting Exceptionエラーを受け取らずに、このサブクラスをどのように列挙しますか?
public IEnumerator GetEnumerator() {
return (IEnumerator)this;
}
しかし、返信行にエラーが表示されています。ここに私のコードの残りの部分があります...
class classOne {
public float x;
public float y;
public float Z;
public classOne() {
x = 0;
y = 0;
z = 0;
}
public classOne(float X, float Y, float Z) {
x = X;
y = Y;
z = Z;
}
}
class classTwo {
public classOne a;
public classOne b;
public classOne c;
public classTwo() {
a = new classOne();
b = new classOne();
c = new classOne();
}
public IEnumerator GetEnumerator() {
return (IEnumerator)this;
//Error: InvalidCastException: Cannot cast from source type to destination type.
}
}
IEnumeratorを実装する方法がわからないので、私が作成したクラスで動作します。私のクラスを 'foreach'で使えるようにするために、サンプルコードでリンクしたものをすべて新しいクラスにする必要がありますか? – Wafer
実際にこのクラスをforeachループで使用する場合は、配列やコレクションを使用しないのはなぜですか? – yes
実際には.NET 1.1以降はこれを実装していません。いったん汎用コレクションがあれば、私はそれを必要としませんでした。私はそれを実装する理由があると確信しています。私は1つに遭遇しなかったか、それを認識しなかった。 –