ここでの沈黙を考えると、そして私は本当に答えが必要だったので、私はVB.NET言語仕様を掘り下げました。
これがサポートされているかどうかを明示的に示すことはありませんが、VB.NETでサポートされていないことを示唆する正式な文法定義がいくつかあります。
具体的には、セクション9.2.1は、メソッド宣言の次のプロダクションを定義しています。
SubSignature ::= Sub Identifier [ TypeParameterList ]
[ OpenParenthesis [ ParameterList ] CloseParenthesis ]
9.2.5では、パラメーターは次のように定義されています。
ParameterList ::=
Parameter |
ParameterList Comma Parameter
Parameter ::=
[ Attributes ] [ ParameterModifier+ ] ParameterIdentifier [ As TypeName ]
[ Equals ConstantExpression ]
そしてセクション13.3は定義しますTypeParameterList
:
TypeParameterList ::=
OpenParenthesis Of TypeParameters CloseParenthesis
TypeParameters ::=
TypeParameter |
TypeParameters Comma TypeParameter
TypeParameter ::=
[ VarianceModifier ] Identifier [ TypeParameterConstraints ]
VarianceModifier ::=
In | Out
TypeParameterConstraints ::=
As Constraint |
As OpenCurlyBrace ConstraintList CloseCurlyBrace
ConstraintList ::=
ConstraintList Comma Constraint |
Constraint
Constraint ::= TypeName | New | Structure | Class
属性はパラメーターリスト(および関数の場合は戻り型)に表示されますが、TypeParameterListには属性に関連するものがまったくありません。
したがって、先に進んで、VB.NET 10(VS2012に同梱)はジェネリック型パラメーターの属性をサポートしていないと主張します。