とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

広告っぽい

書庫

日記カテゴリ

Visual Basic でも'yield' みたいなのが書けるようになったりするの?

※ ネタ元もこのエントリも'思索的な'内容です。ご注意ください。

ネタ元は→Panopticon Central : Iterators in Visual Basic

これまたPaulさんが面白いことを書いてますね。


C# のyieldに相当するIteratorの構文とかどう?


ってお話。で、上がっているコードがこれです↓。

Module Module1
    Function FromTo(ByVal low As IntegerByVal high As IntegerAs IEnumerable(Of Integer)
        Return Iterator
                   If low <= high Then
                       Return low
                       Return Each FromTo(low + 1, high)
                    End If
               End Iterator
    End Function
    Sub Main()
        For Each i In FromTo(15)
            Console.WriteLine(i)
        Next
    End Sub
End Module





えっと…キーワードが…


Each !!?


投稿日時 : 2008年8月11日 22:05

Feedback

# re: Visual Basic でも'yield' みたいなのが書けるようになったりするの? 2008/08/12 9:19 επιστημη

そのまんま Yield ぢゃあかんのかいのぅ...

# re: Visual Basic でも'yield' みたいなのが書けるようになったりするの? 2008/08/12 13:10 とりこびと

コメントありがとうございます♪

どうなんでしょう…?

For Each と Each を並べて書くとなんかしっくりくるようなこないような…w

# re: Visual Basic でも'yield' みたいなのが書けるようになったりするの? 2008/08/12 13:36 えムナウ

「Return Iterator」で、Return が yield return としてはたらくというやつですね。Return low は yield return low です。
「End Iterator」必要なのか?

「Return Each FromTo(low + 1, high)」は既にある Iterator と同じものを返す場合の構文ですね。
この場合は自分を呼んでいます。


タイトル  
名前  
Url
コメント