次のコードがあります
Module StringExtensions
<Extension()>
Public Function ToString(ByVal e As Elements) As String
Return e(0).ToString()
End Function
<Extension()>
Public Function ToString(ByVal e As List(Of Element)) As String
e.ToString("|")
End Function
<Extension()>
Public Function ToString(ByVal e As List(Of Element), ByVal delim As String = "|") As String
Dim s As String = ""
For Each e1 As Element In e
s = String.Join(delim, s, IIf(e1.Terminal, "!", "") & e1.Name)
Next e1
Return s.TrimStart(delim).TrimEnd(delim)
End Function
End Module
Class Elements
Inherits List(Of Element)
'...Various properties and methods
End Class
Class Element
'...Various Properties and methods
End Class
私の質問:
何らかの理由で、 delim 変数を持つ ToString 拡張のみを呼び出すことができます。VS2010 は、他に存在することさえ示しません。変数入力のない2つのToStringのうちの1つだけを試してみました
どうしてこれなの?
私は別のクラスで同様のセットアップを使用していますが、これは正常に機能します。私の知る限り、構文に関して間違ったことは何もしていません。