public static OperatorTest operator +(OperatorTest r,OperatorTest l) { OperatorTest result = new OperatorTest(); result.m_i = r.m_i + l.m_i; result.m_j = r.m_j + l.m_j; result.m_k = r.m_k + l.m_k; return result; }
static void Main(string[] args) { //test 1 { int i = 5; object o = i;//装箱 i = 10; int j = (int)o;//拆箱 j = 15; int k = (int)o; System.Console.WriteLine("{0},{1},{2}", i, j, k); } //test 2 { Box i = new Box(5); object o = i; i.Val = 10; Box j = (Box)o; j.Val = 15; Box k = (Box)o; System.Console.WriteLine("{0},{1},{2}", i.Val, j.Val, k.Val); } //test 3 use struct { SBox i = new SBox(); i.Val = 5; object o = i; i.Val = 10; SBox j = (SBox)o; j.Val = 15; SBox k = (SBox)o; System.Console.WriteLine("{0},{1},{2}", i.Val, j.Val, k.Val); } //test 4 operator + test { OperatorTest i = new OperatorTest(1, 2, 3); OperatorTest j = new OperatorTest(4, 5, 6); OperatorTest k = i + j; System.Console.WriteLine("{0},{1},{2}", k.m_i,k.m_j,k.m_k); } Console.ReadLine(); }