ser*_*hio -2 .net c# operator-overloading
我在nullable 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;
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以在.NET 3.5中使用此运算符?
是否可以在早期版本的.NET中使用?
PS.
显然实际上没有(?)方法使用扩展方法重载运算符,因为扩展方法必须在静态类中,而静态类不能有操作符重载....
PPS.
"已解决"使用
public static int? Add(this int? value1, int? value2)
Run Code Online (Sandbox Code Playgroud)
C#已经将所有运营商"提升"为可空类型.
如果任一操作数为null,则运算符将返回null.
你不需要(也不能)这样做.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |