过载VB& amp; C#库中的连接运算符

时间:2015-04-20 15:21:00

标签: c# vb.net

所以我有一个用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#库连接运算符?

0 个答案:

没有答案