1497 {
1498 if (typeof(T) == typeof(byte))
1499 {
1500 return (byte)(object)left == (byte)(object)right;
1501 }
1502 if (typeof(T) == typeof(sbyte))
1503 {
1504 return (sbyte)(object)left == (sbyte)(object)right;
1505 }
1506 if (typeof(T) == typeof(ushort))
1507 {
1508 return (ushort)(object)left == (ushort)(object)right;
1509 }
1510 if (typeof(T) == typeof(short))
1511 {
1512 return (short)(object)left == (short)(object)right;
1513 }
1514 if (typeof(T) == typeof(uint))
1515 {
1516 return (uint)(object)left == (uint)(object)right;
1517 }
1518 if (typeof(T) == typeof(int))
1519 {
1520 return (int)(object)left == (int)(object)right;
1521 }
1522 if (typeof(T) == typeof(ulong))
1523 {
1524 return (ulong)(object)left == (ulong)(object)right;
1525 }
1526 if (typeof(T) == typeof(long))
1527 {
1528 return (long)(object)left == (long)(object)right;
1529 }
1530 if (typeof(T) == typeof(float))
1531 {
1532 return (float)(object)left == (float)(object)right;
1533 }
1534 if (typeof(T) == typeof(double))
1535 {
1536 return (double)(object)left == (double)(object)right;
1537 }
1538 if (typeof(T) == typeof(UIntPtr))
1539 {
1540 return (UIntPtr)(object)left == (UIntPtr)(object)right;
1541 }
1542 if (typeof(T) == typeof(IntPtr))
1543 {
1544 return (IntPtr)(object)left == (IntPtr)(object)right;
1545 }
1546 throw new NotSupportedException(SR.Arg_TypeNotSupported);
1547 }