首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#照着书上的如何出错了?

2013-09-24 
c#照着书上的怎么出错了???[解决办法]using Systemusing System.Collections.Genericusing System.Linq

c#照着书上的怎么出错了???
c#照着书上的如何出错了?
[解决办法]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace test
{
    class MessageHandler
    {
        private static MethodInfo[] mi = typeof(MessageHandler).GetMethods();
        private ComplexNumber c1 = new ComplexNumber();
        private ComplexNumber c2 = new ComplexNumber();
        public enum CplNum { real, image };
        public struct Digit
        {
            byte value;
            public Digit(byte value)
            {
                if (value < 0 
[解决办法]
 value > 9)
                    throw new ArgumentException();
                this.value = value;
            }
            public static implicit operator byte(Digit d)
            {
                return d.value;
            }
            public static explicit operator Digit(byte b)
            {


                return new Digit(b);
            }
        }
        class ComplexNumber
        {
            private double real;
            private double image;
            public ComplexNumber() { }
            public ComplexNumber(double real, double image)
            {
                this.real = real;
                this.image = image;
            }
            public static ComplexNumber operator +(ComplexNumber op1, ComplexNumber op2)
            {
                return new ComplexNumber(op1[CplNum.real] + op2[CplNum.real], op1[CplNum.image] + op2[CplNum.image]);
            }
            public static ComplexNumber operator ++(ComplexNumber op)
            {
                double real = op[CplNum.real] + 1.0;
                double image = op[CplNum.image] + 1.0;
                return new ComplexNumber(real, image);
            }
            public static bool operator true(ComplexNumber cn)
            {
                return 0 != cn.image && 0 == cn.real;


            }
            public static bool operator false(ComplexNumber cn)
            {
                return 0 != cn.real;
            }
            public double this[CplNum index]
            {
                get
                {

                    if ((index < CplNum.real) 
[解决办法]
 (index > CplNum.image))
                    {
                        throw new IndexOutOfRangeException("cannot get element" + index);
                    }
                    if (CplNum.real == index)
                    {
                        return real;
                    }
                    else
                    {
                        return image;
                    }
                }
                set


                {
                    if ((index < CplNum.real) 
[解决办法]
 (index > CplNum.image))
                    {
                        throw new IndexOutOfRangeException("cannot set element" + index);
                    }
                    if (CplNum.real == index)
                    {
                        real = value;
                    }
                    else
                    {
                        image = value;
                    }
                }
            }
        }

        public void Message()
        {
            Console.Write("In message():");
            Console.WriteLine("hello world:");
        }
        public void Message(char ch)
        {
            Console.Write("In message(char):");
            Console.WriteLine(ch);


        }
        public void Message(string msg)
        {
            Console.Write("In message(System.String):");
            Console.WriteLine(msg);
        }
        public void Message(string msg, int val)
        {
            Console.Write("In message(System.String,Int32[]):");
            Console.WriteLine("val={0}", val);
        }
        public void Message(string msg, params int[] args)
        {
            Console.Write("In message(System.string,Int32[]):");
            Console.Write(msg);
            for (int ix = 0; ix < args.Length; ix++)
            {
                Console.Write("{0}", args[ix].ToString());
            }
            Console.WriteLine();
        }
        public void Message(string msg, params double[] args)
        {
            Console.Write("In message(System.string,Int32[]):");
            Console.Write(msg);
            for (int ix = 0; ix < args.Length; ix++)
            {
                Console.Write("{0:f1}", args[ix]);
            }
            Console.WriteLine();
        }


        public void Message(string msg, params object[] args)
        {
            Console.Write("In message(System.string,System.object[]):");
            Console.Write(msg);
            if (args.Length != 0)
            {
                foreach (object o in args)
                {
                    Console.Write("{0}", o.ToString());
                }
            }
            Console.WriteLine();
        }
        public static void Main(string[] args)
        {
            Console.Title = "Lab #5-Polymorphism by 88250";
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.WriteLine("Enumerate all Methods named Message:");
            foreach (MethodInfo m in mi)
            {
                if ("Message" == m.Name)
                {
                    Console.WriteLine(" Method:{0}", m.GetBaseDefinition());
                }
            }
            MessageHandler mh = new MessageHandler();
            mh.Message();
            mh.Message("V");


            mh.Message("I'M daniel");
            double fVal1 = 10.0, fVal2 = 0.0;
            mh.Message("Chen", 10, fVal1, fVal2, 1024.0);
            mh.Message("Double fib:", 1.0, 1.0, 2.0, 3.0, 5.0, 8.0, 13.0, 21.0, 34.0);
            int iVal1 = 10;
            mh.Message("numble", iVal1);
            mh.Message("88250", 10, fVal1, fVal2, 1024);
            mh.Message("fib:", 1, 1, 2, 3, 5, 8, 13, 21, 34, 55);
            mh.Message("DChen", 88250, "Chen", 884588990, "DC");
            Console.ForegroundColor = ConsoleColor.Blue;
            mh.c1[CplNum.real] = 1.0;
            mh.c1[CplNum.image] = 2.0;
            mh.c2[CplNum.real] = -1.0;
            mh.c2[CplNum.image] = -3.0;
            Console.WriteLine("c1={0}+{1}i", mh.c1[CplNum.real], mh.c1[CplNum.image]);
            Console.WriteLine("c2={0}+{1}i", mh.c2[CplNum.real], mh.c2[CplNum.image]);
            ComplexNumber result = new ComplexNumber((mh.c1 + mh.c2)[CplNum.real], (mh.c1 + mh.c2)[CplNum.image]);
            if (result)
            {
                Console.WriteLine("c1+c2={0}i", result[CplNum.image]);
                Console.WriteLine("the result number is a pure image number!!");
            }
            else


            {
                Console.WriteLine("c1+c2={0}+{1}i", result[CplNum.image], result[CplNum.real]);
            }
            ComplexNumber cn1 = result++;
            Console.WriteLine("c1+c2={0}+{1}i", cn1[CplNum.image], cn1[CplNum.real]);
            ComplexNumber cn2 = ++result;
            Console.WriteLine("c1+c2={0}+{1}i", cn2[CplNum.image], cn2[CplNum.real]);
            Console.Read();
        }
    }
}

热点排行