我在这里遇到了一个非常独特的问题。我们的业务应用程序是使用c#和vb.net构建的。我们一直在尝试采用标准方法来修剪一些已经复制的核心对象。我们已经接近成功,但当我们试图将一个重复的对象合并到c#中时,我们的vb.net代码现在开始抛出错误:“运算符“&”未定义为类型“CSType”和“String”,当我尝试使用&符号进行vb.net字符串连接时。有趣的是,如果我在c#中使用&CSType(在正确重载之后),我会得到我期望的字符串连接。
下面是CSType的基本重载:
当我在c#中使用CSType和字符串运行“&”运算符时,我得到了预期的结果。当我尝试在vb.net中执行该操作时,代码将无法编译,并显示以下错误信息:“类型'CSType'和'String'之间未定义运算符'&'”。
CSType还可以隐式地转换为大多数数据类型,因此我认为可能有一些问题与“&”假定它是位运算符有关,但我猜这会导致执行出错而不是编译错误。
无论如何,我有点想把这个类放在c++中,在那里我知道我可以得到所需的东西,但是两种语言不是已经足够了吗?
下面是CSType的基本重载:
public static string operator &(CSType c1, string s2)
{
return c1.ToString() + s2;
}
public static string operator &(string s1, CSType c2)
{
return s1 + c2.ToString();
}
当我在c#中使用CSType和字符串运行“&”运算符时,我得到了预期的结果。当我尝试在vb.net中执行该操作时,代码将无法编译,并显示以下错误信息:“类型'CSType'和'String'之间未定义运算符'&'”。
CSType还可以隐式地转换为大多数数据类型,因此我认为可能有一些问题与“&”假定它是位运算符有关,但我猜这会导致执行出错而不是编译错误。
无论如何,我有点想把这个类放在c++中,在那里我知道我可以得到所需的东西,但是两种语言不是已经足够了吗?