Romel Evans
Romel Evans

Reputation: 69

In VB.NET how do you specify Inherits/implements on a generic class with multi-constraints

When I write the following statement in VB.Net (C# is my normal language), I get an "end of statement expected" referring to the "Implements" statement.

<Serializable()> _
<XmlSchemaProvider("EtgSchema")> _
Public Class SerializeableEntity(Of T As {Class, ISerializable, New}) _
Implements IXmlSerializable, ISerializable
...
End Class

The C# version that I'm trying to emulate is:

[Serializable]
[XmlSchemaProvider("MySchema")]
public class SerializableEntity<T> : IXmlSerializable, ISerializable where T : class, new()
{
....
}

Sometimes I feel like I have 5 thumbs with VB.NET :)

Upvotes: 3

Views: 2031

Answers (1)

Pavel Minaev
Pavel Minaev

Reputation: 101665

In VB, Implements (and Inherits) is a separate clause within the body of the class (on the same level as class members), so you simply need to drop that _ line continuation:

<Serializable()> _
<XmlSchemaProvider("EtgSchema")> _
Public Class SerializeableEntity(Of T As {Class, ISerializable, New})
    Implements IXmlSerializable, ISerializable
    ...
End Class

Upvotes: 5

Related Questions