Просмотр исходного кода

Tue Mar 5 17:34:14 CET 2002 Paolo Molaro <[email protected]>

	* SByte.cs, UInt64.cs: implement IConvertible interface. Nobody wants
	to do this dirty work, but someone has to do it (and I need it to pass
	the "200 sample tests compiled on linux" mark).

svn path=/trunk/mcs/; revision=2908
Paolo Molaro 24 лет назад
Родитель
Сommit
c62dcdfb3b

+ 7 - 0
mcs/class/corlib/System/ChangeLog

@@ -1,3 +1,10 @@
+
+Tue Mar 5 17:34:14 CET 2002 Paolo Molaro <[email protected]>
+
+	* SByte.cs, UInt64.cs: implement IConvertible interface. Nobody wants
+	to do this dirty work, but someone has to do it (and I need it to pass
+	the "200 sample tests compiled on linux" mark).
+
 2002-03-06  Nick Drochak  <[email protected]>
 
 	* Attribute.cs

+ 66 - 2
mcs/class/corlib/System/SByte.cs

@@ -12,7 +12,7 @@ using System.Globalization;
 namespace System {
 
 	[CLSCompliant(false)]
-	public struct SByte : IComparable, IFormattable { //, IConvertible {
+	public struct SByte : IComparable, IFormattable, IConvertible {
 
 		public const sbyte MinValue = -128;
 		public const sbyte MaxValue = 127;
@@ -154,7 +154,71 @@ namespace System {
 
 		public TypeCode GetTypeCode ()
 		{
-			return TypeCode.Byte;
+			return TypeCode.SByte;
+		}
+		public bool     ToBoolean  (IFormatProvider provider)
+		{
+			return System.Convert.ToBoolean (value);
+		}
+		public byte     ToByte     (IFormatProvider provider)
+		{
+			return System.Convert.ToByte (value);
+		}
+		public char     ToChar     (IFormatProvider provider)
+		{
+			return System.Convert.ToChar (value);
+		}
+		public DateTime ToDateTime (IFormatProvider provider)
+		{
+			throw new NotImplementedException ();
+		}
+		public decimal  ToDecimal  (IFormatProvider provider)
+		{
+			return System.Convert.ToDecimal (value);
+		}
+		public double   ToDouble   (IFormatProvider provider)
+		{
+			return System.Convert.ToDouble (value);
+		}
+		public short    ToInt16    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt16 (value);
+		}
+		public int      ToInt32    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt32 (value);
+		}
+		public long     ToInt64    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt64 (value);
+		}
+    		[CLSCompliant(false)]
+		public sbyte    ToSByte    (IFormatProvider provider)
+		{
+			return value;
+		}
+		public float    ToSingle   (IFormatProvider provider)
+		{
+			return System.Convert.ToSingle (value);
+		}
+		public object   ToType     (Type conversionType, IFormatProvider provider)
+		{
+			throw new NotImplementedException ();
+		}
+    		[CLSCompliant(false)]
+		public ushort   ToUInt16   (IFormatProvider provider)
+		{
+			return System.Convert.ToUInt16 (value);
+		}
+    		[CLSCompliant(false)]
+		public uint     ToUInt32   (IFormatProvider provider)
+		{
+			return System.Convert.ToUInt32 (value);
+		}
+    		[CLSCompliant(false)]
+		public ulong    ToUInt64   (IFormatProvider provider)
+		{
+			return System.Convert.ToUInt64 (value);
 		}
 	}
 }

+ 65 - 1
mcs/class/corlib/System/UInt64.cs

@@ -12,7 +12,7 @@ using System.Globalization;
 namespace System {
 
 	[CLSCompliant(false)]
-	public struct UInt64 : IComparable, IFormattable { //, IConvertible {
+	public struct UInt64 : IComparable, IFormattable, IConvertible {
 		public const ulong MaxValue = 0xffffffffffffffff;
 		public const ulong MinValue = 0;
 		
@@ -164,5 +164,69 @@ namespace System {
 		{
 			return TypeCode.UInt64;
 		}
+		public bool     ToBoolean  (IFormatProvider provider)
+		{
+			return System.Convert.ToBoolean (value);
+		}
+		public byte     ToByte     (IFormatProvider provider)
+		{
+			return System.Convert.ToByte (value);
+		}
+		public char     ToChar     (IFormatProvider provider)
+		{
+			return System.Convert.ToChar (value);
+		}
+		public DateTime ToDateTime (IFormatProvider provider)
+		{
+			throw new NotImplementedException ();
+		}
+		public decimal  ToDecimal  (IFormatProvider provider)
+		{
+			return System.Convert.ToDecimal (value);
+		}
+		public double   ToDouble   (IFormatProvider provider)
+		{
+			return System.Convert.ToDouble (value);
+		}
+		public short    ToInt16    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt16 (value);
+		}
+		public int      ToInt32    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt32 (value);
+		}
+		public long     ToInt64    (IFormatProvider provider)
+		{
+			return System.Convert.ToInt64 (value);
+		}
+    		[CLSCompliant(false)]
+		public sbyte    ToSByte    (IFormatProvider provider)
+		{
+			return System.Convert.ToSByte (value);
+		}
+		public float    ToSingle   (IFormatProvider provider)
+		{
+			return System.Convert.ToSingle (value);
+		}
+		public object   ToType     (Type conversionType, IFormatProvider provider)
+		{
+			throw new NotImplementedException ();
+		}
+    		[CLSCompliant(false)]
+		public ushort   ToUInt16   (IFormatProvider provider)
+		{
+			return System.Convert.ToUInt16 (value);
+		}
+    		[CLSCompliant(false)]
+		public uint     ToUInt32   (IFormatProvider provider)
+		{
+			return System.Convert.ToUInt32 (value);
+		}
+    		[CLSCompliant(false)]
+		public ulong    ToUInt64   (IFormatProvider provider)
+		{
+			return value;
+		}
 	}
 }