早速の回答ありがとうございます。
いただいた回答をもとに色々考えましたが、何か釈然としない部分が残っています。
先のコードの、
IEnumerator i = collection.GetEnumerator(); // @
i.MoveNext() // A
の部分は、下記のような動作と考えていいのでしょうか?
@について:
・collectionはMyCollection<int>型である。
・よって、collection.GetEnumerator()のGetEnumerator()はジェネリック版のほうを意味し、
その戻り値はIEnumerator<T>型である。
・IEnumerator<T>型である戻り値が、IEnumerator型の変数iに入る。
・IEnumerator<T>型の値を、IEnumerator型の変数に入れられる理由は、
「IEnumerator<>はIEnumeratorを継承しているから」。
Aについて:
・i.MoveNext()により、実際にGetEnumerator()が呼ばれる。
・iはIEnumerator型(非ジェネリック)であるが、i.MoveNext()で実際に呼ばれるのは、
ジェネリック版のGetEnumerator()のほう。
以上の動作は、
インターフェイスI1をI2が継承するとして、
I2型の値をI1型の変数に入れて、I1型の変数経由で、I2にしかないメソッドを呼んでいるように見えます。
(I2にしかないメソッドとは、今回の例ではジェネリック版GetEnumerator()のことです)
== 続く ==
探検
ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
244240 (ワッチョイ 8bbe-2WTa)
2017/06/18(日) 13:14:15.29ID:3NNsYvIS0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【結婚の壁】結婚どころか今まで恋愛経験は一切ない人も…「年収500万の壁」を突破できない中間層の苦しい現実 [ぐれ★]
- 【速報】高市首相 青森震度6強地震で負傷者30人 [蚤の市★]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 【動画】ママチャリまんさん「わたし女ですけど!」シャコシャコシャコシャコ 🚴‍♀❗🚛 [329329848]
- 声優・矢尾一樹の妻「治療の影響で思う様に話せない彼に、近くで仕事をしてきた人が、かっこ悪い!もう辞めなよと言った。私は許さない」 [594040874]
- 【画像】TOKIO山口達也に「いいべ」された当時のJK、性加害の反動であたしこグラドルにwww [779857986]
- おまえらスキンケアしてる?
- ぼくくん、昨年PCを組んだため値上げ回避 ちなスペック [794961135]
