以前(2006年9月15日)の私の記事で「Genericにこんな仕様が欲しい」をUpしたところ早速、επιστημηさんから
>Public Class C(Of T As New) '← 注目!
と教えて頂いたことがありました。ありがとうございました。
その時は、動作ことに満足して、仕組みが消化不良だったのですが、先日,プログラミングC#を読んでいて理解できました。
AS xxx は制約で c# の Where相当なんですね。 of T AS xxx と した場合の制約は, 「xxxxが持つMemberを 持つTに限定する」という意味でした。
簡単に理解すると ctype(T ,xxx).New() が実行可能なものが許可されるので, new T が成立すると言うこと。
スッキリ理解。 VB/C# 双方の資料を読む大切さを痛感しました。
ということは, 整数制約をつければ,整数演算子の使用が可能になるかと試しました。
Public class C (of T as int32)
end class
とすれば C = C + 4 が 可能かと邪推したのですが,値型は対象外でした。(以前メンバーの記事にもありました。)
ウーン残念。