我在這裏有一個令人難以置信的獨特問題。我們的商業應用程序是使用c#和vb.net構建的。我們一直在試圖達到一個標準,並修剪一些已經重複的核心物體的脂肪。我們正在變得非常接近,但是當嘗試將一個重複的對象合併到C#中時,我們的vb.net代碼現在開始拋出錯誤「Operator'&'未針對類型'CSType'和'String'進行定義,當我嘗試執行vb使用連字符(&).NET字符串連接。有趣的是,如果我用在C「&」#與CSType(後正常超載)我得到的字符串連接我的期望。在c#類中重載vb.net&運算符
這裏是我的基本重載在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’和‘串’定義」
CSType也隱含轉換對於大多數數據類型,所以我在想'&'可能存在一些問題,假設它是一個按位運算符,但我猜想這會因給我搞砸而不是編譯錯誤而失敗。
無論如何,我有一半的頭腦放在C++的這個類,我知道我可以得到我所需要的,但不是已經足夠的2種語言。
'&'在C#中重載按位與。 – SLaks
(我認爲這裏的含義是你需要爲字符串提供一個cast操作符重載並在VB.NET中使用CType。) – Markus
不要對業務應用程序使用操作符重載。 :) – Neolisk