インターフェイスの実装とイテレータ (反復子)
Implements
Iterator
yield return は Yield で
インターフェイス実装時にプロシージャが自動的に準備される
リスト5-77及び次頁Note
Public Class Member
Implements IValidatableObject
・・・ 中略 ・・・
Public Iterator Function Validate(validationContext As ValidationContext) As IEnumerable(Of ValidationResult) Implements IValidatableObject.Validate
If Married AndAlso IsNothing(Email) Then
Yield New ValidationResult("既婚者はメールアドレスを入力してください。")
Yield New ValidationResult("既婚者はメールアドレスを入力してください。", New String() {"Email"})
End If
End Function
参考
//イテレータとなるメソッドにIterator修飾子を付ける必要があります。
http://smdn.jp/programming/netfx/enumerator/2_iterator/
//著者山田祥寛氏による解説
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_05/aspnetmvc3_05_03.html
尚、リスト中
if (m.Married && m.Email == null) とあるのは
if (Married && Email == null) の誤り