Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object o = 123456U;
- ulong l = (ulong) o; // fails
- object o = 123456U;
- ulong l = (ulong) (uint) o; // succeeds
- void foo(object o)
- {
- switch (Type.GetTypeCode(o.GetType()))
- {
- case TypeCode.UInt32:
- case TypeCode.UInt64:
- ulong l = (ulong) o;
- RunUnsignedIntVersion(l);
- break;
- case TypeCode.Int32:
- case TypeCode.Int64:
- long n = (long) o;
- RunSignedVersion(n);
- break;
- }
- }
- foo(123456U);
- foo(123456);
- case TypeCode.Int32:
- RunSignedVersion((int) o);
- break;
- case TypeCode.Int64:
- long n = (long) o;
- RunSignedVersion(n);
- break;
- void foo(object o)
- {
- switch (Type.GetTypeCode(o.GetType()))
- {
- case TypeCode.UInt32:
- case TypeCode.UInt64:
- ulong l = Convert.ToUInt64(o);
- RunUnsignedIntVersion(l);
- break;
- case TypeCode.Int32:
- case TypeCode.Int64:
- long n = Convert.ToInt64(o);
- RunSignedVersion(n);
- break;
- }
- }
- [CLSCompliant(false)]
- public static ulong ToUInt64(object value) {
- return value == null? 0: ((IConvertible)value).ToUInt64(null);
- }
- [CLSCompliant(false)]
- public static long ToInt64(object value) {
- return value == null? 0: ((IConvertible)value).ToInt64(null);
- }
- case TypeCode.Int32:
- RunSignedVersion((int) o);
- break;
- case TypeCode.Int64:
- long n = (long) o;
- RunSignedVersion(n);
- break;
- public static class ConversionExtensions
- {
- public static ulong ToUInt64(this object value)
- {
- return ((IConvertible)value).ToUInt64();
- }
- }
- object o = 123456U;
- ulong l = o.ToUInt64();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement