2002-07-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / corlib / System / IConvertible.cs
index bfff8808b28f5b57bc56ae4a3657582274b9e963..95612b04c212d305d9aaf270e71e68f65709764d 100644 (file)
@@ -7,27 +7,49 @@
 // (C) Ximian, Inc.  http://www.ximian.com
 //
 
-namespace System {
-
-       public interface IConvertible {
+//
+// Functions Implementing this interface should check out 
+// System.Convert. Most of these methods are implemented 
+// there for all these data types.
+//
+// System.Convert has ToType helper method for the object 
+// ToType (Type conversionType, IFormatProvider provider)
+// method. In most cases you can specify your ToType function
+// as calling 
+//
+// public Type value; // value of this data type
+// public object ToType(Type conversionType, IFormatProvider provider) {
+//    Convert.ToType (value, conversionType, provider);
+// } 
+// 
+// Which is just a wrapper for your ToType methods.
+//
+// See http://lists.ximian.com/archives/public/mono-list/2001-July/000525.html
+// for more discussion on the topic
+//
 
-               TypeCode GetTypeCode ();
+namespace System {
 
-               bool     ToBoolean  (IFormatProvider provider);
-               byte     ToByte     (IFormatProvider provider);
-               char     ToChar     (IFormatProvider provider);
-               DateTime ToDateTime (IFormatProvider provider);
-               Decimal  ToDecimal  (IFormatProvider provider);
-               Double   ToDouble   (IFormatProvider provider);
-               Int16    ToInt16    (IFormatProvider provider);
-               Int32    ToInt32    (IFormatProvider provider);
-               Int64    ToInt64    (IFormatProvider provider);
-               SByte    ToSByte    (IFormatProvider provider);
-               float    ToSingle   (IFormatProvider provider);
-               string   ToString   (IFormatProvider provider);
-               object   ToType     (Type conversionType, IFormatProvider provider);
-               UInt16   ToUInt16   (IFormatProvider provider);
-               UInt32   ToUInt32   (IFormatProvider provider);
-               UInt64   ToUInt64   (IFormatProvider provider);
-       }
+    [CLSCompliant(false)]
+    public interface IConvertible {
+       
+       TypeCode GetTypeCode ();
+       
+       bool     ToBoolean  (IFormatProvider provider);
+       byte     ToByte     (IFormatProvider provider);
+       char     ToChar     (IFormatProvider provider);
+       DateTime ToDateTime (IFormatProvider provider);
+       decimal  ToDecimal  (IFormatProvider provider);
+       double   ToDouble   (IFormatProvider provider);
+       short    ToInt16    (IFormatProvider provider);
+       int      ToInt32    (IFormatProvider provider);
+       long     ToInt64    (IFormatProvider provider);
+       sbyte    ToSByte    (IFormatProvider provider);
+       float    ToSingle   (IFormatProvider provider);
+       string   ToString   (IFormatProvider provider);
+       object   ToType     (Type conversionType, IFormatProvider provider);
+       ushort   ToUInt16   (IFormatProvider provider);
+       uint     ToUInt32   (IFormatProvider provider);
+       ulong    ToUInt64   (IFormatProvider provider);
+    }
 }