IConvertible Interface defines methods that convert the current instance to a language runtime type : IConvertible « Data Types « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Date Time
8.Design Patterns
9.Development Class
10.Event
11.File Stream
12.Generics
13.GUI Windows Form
14.Internationalization I18N
15.Language Basics
16.LINQ
17.Network
18.Office
19.Reflection
20.Regular Expressions
21.Security
22.Services Event
23.Thread
24.Web Services
25.Windows
26.Windows Presentation Foundation
27.XML
28.XML LINQ
C# / C Sharp » Data Types » IConvertibleScreenshots 
IConvertible Interface defines methods that convert the current instance to a language runtime type
 

    using System;

  class Complex : IConvertible
  {
    double  x;
    double  y;

    public Complex(double x, double y)
    {
      this.x = x;
      this.y = y;
    }

    public TypeCode GetTypeCode()
    {
      return TypeCode.Object;
    }

    bool IConvertible.ToBoolean(IFormatProvider provider)
    {
      if(  (x != 0.0|| (y != 0.0) )
        return true;
      else
        return false;
    }

    double GetDoubleValue()
    {
      return Math.Sqrt(x*x + y*y);
    }

    byte IConvertible.ToByte(IFormatProvider provider)
    {
      return Convert.ToByte(GetDoubleValue());
    }

    char IConvertible.ToChar(IFormatProvider provider)
    {
      return Convert.ToChar(GetDoubleValue());
    }

    DateTime IConvertible.ToDateTime(IFormatProvider provider)
    {
      return Convert.ToDateTime(GetDoubleValue());
    }

    decimal IConvertible.ToDecimal(IFormatProvider provider)
    {
      return Convert.ToDecimal(GetDoubleValue());
    }

    double IConvertible.ToDouble(IFormatProvider provider)
    {
      return GetDoubleValue();
    }

    short IConvertible.ToInt16(IFormatProvider provider)
    {
      return Convert.ToInt16(GetDoubleValue());
    }

    int IConvertible.ToInt32(IFormatProvider provider)
    {
      return Convert.ToInt32(GetDoubleValue());
    }

    long IConvertible.ToInt64(IFormatProvider provider)
    {
      return Convert.ToInt64(GetDoubleValue());
    }

    sbyte IConvertible.ToSByte(IFormatProvider provider)
    {
      return Convert.ToSByte(GetDoubleValue());
    }

    float IConvertible.ToSingle(IFormatProvider provider)
    {
      return Convert.ToSingle(GetDoubleValue());
    }

    string IConvertible.ToString(IFormatProvider provider)
    {
      return String.Format("({0}, {1})", x, y);
    }

    object IConvertible.ToType(Type conversionType, IFormatProvider provider)
    {
      return Convert.ChangeType(GetDoubleValue(),conversionType);
    }

    ushort IConvertible.ToUInt16(IFormatProvider provider)
    {
      return Convert.ToUInt16(GetDoubleValue());
    }

    uint IConvertible.ToUInt32(IFormatProvider provider)
    {
      return Convert.ToUInt32(GetDoubleValue());
    }

    ulong IConvertible.ToUInt64(IFormatProvider provider)
    {
      return Convert.ToUInt64(GetDoubleValue());
    }

  }
  class Class1
  {
    static void Main(string[] args)
    {
      Complex    testComplex = new Complex(4,7);

      Console.WriteLine(Convert.ToBoolean(testComplex));
    }
  }

   
  
Related examples in the same category
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.