Версия C # также не компилируется по той же причине. Должно быть:
public static void AddObjects<T>(this ObjectSet<T> objectSet,
IEnumerable<T> objects)
where T : class // Note this bit
{
foreach (var item in objects)
{
objectSet.AddObject(item);
}
}
И версия VB:
<Extension> _
Public Sub AddObjects(Of T As Class)(ByVal objectSet As ObjectSet(Of T), _
ByVal objects As IEnumerable(Of T))
Dim local As T
For Each local In objects
objectSet.AddObject(local)
Next
End Sub
Обратите внимание, что в версии VB ограничение является частью объявления параметра типа. Подробнее см. MSDN .