@@ -7,7 +7,7 @@ namespace NHibernate.DomainModel.NHSpecific
77 /// A nullable type that wraps an <see cref="Int32"/> value.
88 /// </summary>
99 [ TypeConverter ( typeof ( NullableInt32Converter ) ) , Serializable ( ) ]
10- public struct NullableInt32 : IFormattable , IComparable
10+ public struct NullableInt32 : IFormattable , IComparable , IConvertible
1111 {
1212 public static readonly NullableInt32 Default = new NullableInt32 ( ) ;
1313
@@ -234,5 +234,94 @@ public static NullableInt32 Parse(string s)
234234 // TODO: implement the rest of the Parse overloads found in Int32
235235
236236 #endregion
237+
238+ #region IConvertible
239+
240+ public TypeCode GetTypeCode ( )
241+ {
242+ return _value . GetTypeCode ( ) ;
243+ }
244+
245+ public bool ToBoolean ( IFormatProvider provider )
246+ {
247+ return ( ( IConvertible ) _value ) . ToBoolean ( provider ) ;
248+ }
249+
250+ public char ToChar ( IFormatProvider provider )
251+ {
252+ return ( ( IConvertible ) _value ) . ToChar ( provider ) ;
253+ }
254+
255+ public sbyte ToSByte ( IFormatProvider provider )
256+ {
257+ return ( ( IConvertible ) _value ) . ToSByte ( provider ) ;
258+ }
259+
260+ public byte ToByte ( IFormatProvider provider )
261+ {
262+ return ( ( IConvertible ) _value ) . ToByte ( provider ) ;
263+ }
264+
265+ public short ToInt16 ( IFormatProvider provider )
266+ {
267+ return ( ( IConvertible ) _value ) . ToInt16 ( provider ) ;
268+ }
269+
270+ public ushort ToUInt16 ( IFormatProvider provider )
271+ {
272+ return ( ( IConvertible ) _value ) . ToUInt16 ( provider ) ;
273+ }
274+
275+ public int ToInt32 ( IFormatProvider provider )
276+ {
277+ return ( ( IConvertible ) _value ) . ToInt32 ( provider ) ;
278+ }
279+
280+ public uint ToUInt32 ( IFormatProvider provider )
281+ {
282+ return ( ( IConvertible ) _value ) . ToUInt32 ( provider ) ;
283+ }
284+
285+ public long ToInt64 ( IFormatProvider provider )
286+ {
287+ return ( ( IConvertible ) _value ) . ToInt64 ( provider ) ;
288+ }
289+
290+ public ulong ToUInt64 ( IFormatProvider provider )
291+ {
292+ return ( ( IConvertible ) _value ) . ToUInt64 ( provider ) ;
293+ }
294+
295+ public float ToSingle ( IFormatProvider provider )
296+ {
297+ return ( ( IConvertible ) _value ) . ToSingle ( provider ) ;
298+ }
299+
300+ public double ToDouble ( IFormatProvider provider )
301+ {
302+ return ( ( IConvertible ) _value ) . ToDouble ( provider ) ;
303+ }
304+
305+ public decimal ToDecimal ( IFormatProvider provider )
306+ {
307+ return ( ( IConvertible ) _value ) . ToDecimal ( provider ) ;
308+ }
309+
310+ public DateTime ToDateTime ( IFormatProvider provider )
311+ {
312+ return ( ( IConvertible ) _value ) . ToDateTime ( provider ) ;
313+ }
314+
315+ public string ToString ( IFormatProvider provider )
316+ {
317+ return _value . ToString ( provider ) ;
318+ }
319+
320+ public object ToType ( System . Type conversionType , IFormatProvider provider )
321+ {
322+ return ( ( IConvertible ) _value ) . ToType ( conversionType , provider ) ;
323+ }
324+
325+ #endregion
237326 }
238327}
0 commit comments