運算符重載我這樣定義的可空INT之間的加法:使用擴展方法
public static class Utils
{
public static int? operator +(int? value1, int? value2)
{
if (!value1.HasValue && !value2.HasValue)
return null;
int myValue1 = value1.HasValue ? value1.Value : 0;
int myValue2 = value2.HasValue ? value1.Value : 0;
return myValue1 + myValue2;
}
}
是否有可能在.NET 3.5使用該運營商?
在早期版本的.NET中可能嗎?
PS。
顯然其實沒有(?)的方式來超載運營商使用擴展方法 因爲擴展方法必須是靜態類和靜態類不能有運算符重載....
PPS。
「解決」 使用已經
public static int? Add(this int? value1, int? value2)
你試過編譯它? – dan04
是的,代碼不能編譯,問題是可以或不可以構建這樣的東西。 – serhio
如果它不能編譯,那麼你不能這樣做。另外,您通常會將操作員放在自定義類中,而不是其他現有數據類型的sudo擴展方法。 – gunr2171