所以我有一个用VB实现的DLL,我已经移植到C#。我的库的一个特点是我有一个类,我尝试给出与字符串相同的外观和感觉。我重载了字符串连接运算符。
在C#中,+运算符用于字符串连接,而在VB中,&运算符用于字符串连接。使用运算符。因此,在旧的VB版本的库中,我重载了两个运算符。然后库的VB和C#客户端可以正常使用它。
当我将课程移植到C#时,我仍然继续超载&运营商。然而,一个VB客户端报告&运算符未实现。它不会编译。
这是我的C#库:
public class Document
{
private readonly string _body;
public Document(string body)
{
_body = body;
}
public static Document operator &(Document lhs, string rhs)
{
return new Document(string.Concat(lhs.ToString(), rhs));
}
public override string ToString()
{
return _body;
}
}
这是由VB客户端代码,不编译。错误消息是“操作员”&'未定义类型“文档”和“字符串”“。
<TestMethod()>
Public Sub TestMethod1()
Dim doc = New Document("Hello")
doc = doc & ", world!"
End Sub
有谁知道我是如何支持VB的&amp;从C#库连接运算符?