在 VB.NET 中,如何在具有多重约束的泛型类上指定继承/实现

Rom*_*ans 3 vb.net generics constraints

当我在 VB.Net(C# 是我的常用语言)中编写以下语句时,我得到一个“预期的语句结束”,指的是“Implements”语句。

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

我试图模拟的 C# 版本是:

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

有时我觉得我对 VB.NET 有 5 个大拇指:)

Pav*_*aev 5

在 VB 中,Implements(and Inherits) 是类主体的一个单独子句(与类成员处于同一级别),因此您只需删除该_行继续:

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