using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public struct ComplexNumber : IConvertible
{
private double real;
private double imaginary;
public ComplexNumber(double real, double imaginary)
{
this.real = real;
this.imaginary = imaginary;
}
public TypeCode GetTypeCode()
{
return TypeCode.Object;
}
public bool ToBoolean(IFormatProvider provider)
{
throw new InvalidCastException();
}
public byte ToByte(IFormatProvider provider)
{
throw new InvalidCastException();
}
public char ToChar(IFormatProvider provider)
{
throw new InvalidCastException();
}
public sbyte ToSByte(IFormatProvider provider)
{
throw new InvalidCastException();
}
public short ToInt16(IFormatProvider provider)
{
throw new InvalidCastException();
}
public int ToInt32(IFormatProvider provider)
{
throw new InvalidCastException();
}
public long ToInt64(IFormatProvider provider)
{
throw new InvalidCastException();
}
public ushort ToUInt16(IFormatProvider provider)
{
throw new InvalidCastException();
}
public uint ToUInt32(IFormatProvider provider)
{
throw new InvalidCastException();
}
public ulong ToUInt64(IFormatProvider provider)
{
throw new InvalidCastException();
}
public float ToSingle(IFormatProvider provider)
{
throw new InvalidCastException();
}
public double ToDouble(IFormatProvider provider)
{
return this.real;
}
public decimal ToDecimal(IFormatProvider provider)
{
throw new InvalidCastException();
}
public DateTime ToDateTime(IFormatProvider provider)
{
throw new InvalidCastException();
}
public string ToString(IFormatProvider provider)
{
return this.real.ToString() + (this.imaginary >= 0 ? "+" : "") + this.imaginary.ToString() + "i";
}
public Object ToType(Type conversionType, IFormatProvider provider)
{
throw new InvalidCastException();
}
}
class Program
{
static void Main(string[] args)
{
ComplexNumber c = new ComplexNumber(5, -6);
Console.WriteLine("Conversion
to string: {0}", Convert.ToString(c));
Console.WriteLine("Conversion
to double: {0}", Convert.ToDouble(c));
c = new ComplexNumber(-7, 9);
Console.WriteLine("Conversion
to string: {0}", Convert.ToString(c));
Console.WriteLine("Conversion
to double: {0}", Convert.ToDouble(c));
Console.ReadKey();
}
}
}
No comments:
Post a Comment