mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
namespace CheckedOperators;
|
|
|
|
public class Number
|
|
{
|
|
public int Value { get; }
|
|
|
|
public Number(int n) => this.Value = n;
|
|
|
|
public static Number operator checked +(Number n1, Number n2) =>
|
|
new Number(checked(n1.Value + n2.Value));
|
|
|
|
public static Number operator +(Number n1, Number n2) =>
|
|
new Number(n1.Value + n2.Value);
|
|
|
|
public static Number operator checked -(Number n1, Number n2) =>
|
|
new Number(checked(n1.Value - n2.Value));
|
|
|
|
public static Number operator -(Number n1, Number n2) =>
|
|
new Number(n1.Value - n2.Value);
|
|
|
|
public static Number operator checked *(Number n1, Number n2) =>
|
|
new Number(checked(n1.Value * n2.Value));
|
|
|
|
public static Number operator *(Number n1, Number n2) =>
|
|
new Number(n1.Value * n2.Value);
|
|
|
|
public static Number operator checked /(Number n1, Number n2) =>
|
|
new Number(checked(n1.Value / n2.Value));
|
|
|
|
public static Number operator /(Number n1, Number n2) =>
|
|
new Number(n1.Value / n2.Value);
|
|
|
|
public static Number operator checked -(Number n) =>
|
|
new Number(checked(-n.Value));
|
|
|
|
public static Number operator -(Number n) =>
|
|
new Number(-n.Value);
|
|
|
|
public static Number operator checked ++(Number n) =>
|
|
new Number(checked(n.Value + 1));
|
|
|
|
public static Number operator ++(Number n) =>
|
|
new Number(n.Value + 1);
|
|
|
|
public static Number operator checked --(Number n) =>
|
|
new Number(checked(n.Value - 1));
|
|
|
|
public static Number operator --(Number n) =>
|
|
new Number(n.Value - 1);
|
|
|
|
public static explicit operator short(Number n) =>
|
|
(short)n.Value;
|
|
|
|
public static explicit operator checked short(Number n) =>
|
|
checked((short)n.Value);
|
|
}
|