1821 {
1822 if (typeof(T) == typeof(byte))
1823 {
1824 return (T)(object)(byte)((byte)(object)left - (byte)(object)right);
1825 }
1826 if (typeof(T) == typeof(sbyte))
1827 {
1828 return (T)(object)(sbyte)((sbyte)(object)left - (sbyte)(object)right);
1829 }
1830 if (typeof(T) == typeof(ushort))
1831 {
1832 return (T)(object)(ushort)((ushort)(object)left - (ushort)(object)right);
1833 }
1834 if (typeof(T) == typeof(short))
1835 {
1836 return (T)(object)(
short)((
short)(
object)left - (
short)(
object)right);
1837 }
1838 if (typeof(T) == typeof(uint))
1839 {
1840 return (T)(object)((uint)(object)left - (uint)(object)right);
1841 }
1842 if (typeof(T) == typeof(int))
1843 {
1844 return (T)(object)((int)(object)left - (int)(object)right);
1845 }
1846 if (typeof(T) == typeof(ulong))
1847 {
1848 return (T)(object)((ulong)(object)left - (ulong)(object)right);
1849 }
1850 if (typeof(T) == typeof(long))
1851 {
1852 return (T)(object)((long)(object)left - (long)(object)right);
1853 }
1854 if (typeof(T) == typeof(float))
1855 {
1856 return (T)(object)((float)(object)left - (float)(object)right);
1857 }
1858 if (typeof(T) == typeof(double))
1859 {
1860 return (T)(object)((double)(object)left - (double)(object)right);
1861 }
1862 if (typeof(T) == typeof(UIntPtr))
1863 {
1864 return (T)(object)(nuint)((nint)(nuint)(
UIntPtr)(
object)left - (nint)(nuint)(
UIntPtr)(
object)right);
1865 }
1866 if (typeof(T) == typeof(IntPtr))
1867 {
1868 return (T)(object)((nint)(
IntPtr)(
object)left - (nint)(IntPtr)(object)right);
1869 }
1870 throw new NotSupportedException(SR.Arg_TypeNotSupported);
1871 }