VS2013 IDE C#生成CodeMap

<span style="font-size:32px;">下边的代码是C#控制台程序,测试了一些模板、接口等的用法,作为入门。</span>
<span style="font-size:32px;">利用下边的代码在VS2013里生成代码的类图,类、接口关系图。</span>
<span style="font-size:18px;">生成方法:</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>解决方案(右键)->Show on Code Map.即可动画查看类图。</span>

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;



namespace ConsoleTest
{
    
    class Program
    {

        private delegate void pIndex(int n);
        private delegate int pInt(int m, int n);
        private delegate double pDbl(double m, double n);

        static void Main(string[] args) // Default PRIVATE Attr.
        {
            int i = 0;
            int j = 0;
            int k = 0;
            Console.Write("Hello, C#!\n");



            ///---/// 显示当前日期及时间
            isolationStrip();
            DateTime dt1 = DateTime.Now;
            Console.WriteLine();
            Console.WriteLine("dt1: {0} Year {1} Month {2} Day {3} Hour {4} Minutes {5} Seconds {6} MillSec",
                dt1.Year, dt1.Month, dt1.Day, dt1.Hour, dt1.Minute, dt1.Second, dt1.Millisecond);
            Console.Write("\n\n");



            ///---/// 数学函数测试
            isolationStrip();
            double doublePara1 = Math.Sin(0.5);
            Console.WriteLine("\nSin({1}) is :{0}.", doublePara1, 0.5);
      


            TestDelegate classOne = new TestDelegate();
            pIndex p = new pIndex( classOne.showDoubleValue);
            p(111);
            p = new pIndex( classOne.showValue);
            p(111);

            pInt pInt = new pInt(classOne.Add);
            pInt(172,12);
            pInt = new pInt(classOne.Red);
            pInt(108, 12);
            pInt = new pInt(classOne.Multi);
            pInt(108, 12);
            pInt = new pInt(classOne.Div);
            pInt(108, 12);

            pDbl pDbl = new pDbl(classOne.Add);
            pDbl(172.345,  12.34);
            pDbl = new pDbl(classOne.Red);
            pDbl(172.345, 12.34);
            pDbl = new pDbl(classOne.Multi);
            pDbl(172.345, 12.34);
            pDbl = new pDbl(classOne.Div);
            pDbl(172.345, 12.34);



            int e = 0;
            string e1 = "";
            Stack<string> sStr = new Stack<string>();
            Stack<int> sInt = new Stack<int>();
            // Int type stack
            sInt.Push(14);
            sInt.Push(54);
            sInt.Push(12);
            Console.WriteLine("Pop Stack Sort:");
            while ( !sInt.StackEmpty())
            {
                sInt.Pop( ref e);
                Console.WriteLine(" {0} ", e);
            }
            Console.WriteLine();
            Console.WriteLine();
            // String type stack
            sStr.Push("LE");
            sStr.Push("YY");
            sStr.Push("Bright");
            Console.WriteLine("Pop Stack Sort:");
            while (!sStr.StackEmpty())
            {
                sStr.Pop(ref e1);
                Console.WriteLine(" {0} ", e1);
            }
            Console.WriteLine();
            Console.WriteLine();



            ///---/// Output 第1个矩形信息
            isolationStrip();
            Rectangle rect = new Rectangle(200.0, 120.00);
            rect.showDetialInfo();
            Console.WriteLine("\nNow outputting the {0}th circle info, \nits area is {1}", 1, rect.getArea());
            Console.WriteLine();



            ///---/// Output 第1个椭球信息
            isolationStrip();
            Circle Ellipsoid = new Ellipsoid(1.00, 5.00, 12.0);
            Ellipsoid.showInfo();
            Console.WriteLine("\nNow outputting the {0}th circle info, \nits area is {1}", 1, Ellipsoid.getArea());
            Ellipsoid.showDetialInfo();
            Console.WriteLine();
            Console.WriteLine();



            ///---/// Output 第1个圆形信息
            isolationStrip();
            Circle circleClass = new Circle( 1.00, 5.00);
            circleClass.showInfo();
            Console.WriteLine("\nNow outputting the {0}th circle info, \nits area is {1}", 1,  circleClass.getArea());
            circleClass.showDetialInfo();
            Console.WriteLine();
            Console.WriteLine();

            ///---/// Output 第2个圆形信息
            Circle circleClass2 = new Circle();
            circleClass2.showInfo();
            Console.WriteLine("\nNow outputting the {0}th circle info, \nits area is {1}", 2, circleClass2.getArea());
            circleClass2.showDetialInfo();
            Console.WriteLine();
            Console.WriteLine();

            ///---/// Output 第3个圆形信息
            Circle circleClass3 = new Circle(100.00, 512.00);
            circleClass3.showInfo();
            Console.WriteLine("\nNow outputting the {0}th circle info, \nits area is {1}", 3, circleClass3.getArea());
            Console.WriteLine();
            Console.WriteLine();


            ///---/// 模板方法1
            isolationStrip();
            MyOpe<Circle> thiOpe = new MyOpe<Circle>();
            circleClass2.showDetialInfo();
            circleClass3.showDetialInfo();
            Console.WriteLine("\n");
            thiOpe.MySwap( ref circleClass2, ref circleClass3);
            Console.WriteLine("After calling the template function - swap:\n");
            circleClass2.showDetialInfo();
            circleClass3.showDetialInfo();
            Console.WriteLine("\n\n");


            ///---/// 模板方法2
            MyPurelOpe<Circle> forthOpe = new MyPurelOpe<Circle>();
            circleClass2.showDetialInfo();
            circleClass3.showDetialInfo();
            Console.WriteLine("\n");
            forthOpe.MySwap(ref circleClass2, ref circleClass3);
            Console.WriteLine("After calling the template function - swap:\n");
            circleClass2.showDetialInfo();
            circleClass3.showDetialInfo();
            Console.WriteLine("\n\n");

            

            ---/// 自定义函数调用
            Console.WriteLine( FcnTest001());
            FcnTest002();

            Console.ReadKey();
        }





        /// <summary>
        /// 添加自定义函数
        /// </summary>
        /// <returns></returns>
        private static string FcnTest001()
        {
            return "\nSelf-defination Funciotn 001:\n"+"Now testing the Function Call FcnTest001.";
        }
        private static void FcnTest002()
        {
            Console.WriteLine("\nSelf-defination Funciotn 002:\n" + 
                "Now testing the Function Call FcnTest002. ..." +
                 "And the static is necessary to limiting the function.");
        }
        private static void isolationStrip()
        {
            Console.WriteLine("\n" +
                "///---///---///---///---///---///---///---///---///---///---///---///---///---///" +
                "\n"+
                "///---///---///---///---///---/ Isolationg Strip  /---///---///---///---///---///" +
                "\n" +
                "///---///---///---///---///---///---///---///---///---///---///---///---///---///" +
                 "\n");
        }
        /// <summary>
        /// 模板方法实例001
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="para1"></param>
        /// <param name="para2"></param>
        private static void MySwap<T>(ref T para1, ref T para2)
        {
            T tmp = para1;
            para1 = para2;
            para2 = tmp;
        }
    }


    /// <summary>
    /// 一些自定义类以及接口
    /// </summary>
    public class TestDelegate
    {
        /// <summary>
        /// 纯方法类,无属性
        /// </summary>

        public void showDoubleValue(int n)
        {
            Console.WriteLine("{0} Multiply 2 is {1}", n, 2 * n);
        }

        public void showValue(int n)
        {
            Console.WriteLine("Varialbe is {0}", n);
        }

        public int Add(int m, int n)
        {          
            Console.WriteLine("{0} Add {1} is {2}", m, n, m+n);
            return m + n;
        }

        public int Red(int m, int n)
        {
            Console.WriteLine("{0} Reduce {1} is {2}", m, n, m - n);
            return m - n;
        }

        public int Multi(int m, int n)
        {
            Console.WriteLine("{0} Multi {1} is {2}", m, n, m * n);
            return m * n;
        }


        public int Div(int m, int n)
        {
            Console.WriteLine("{0} Divide {1} is {2}", m, n, m / n);
            return m / n;
        }


        public double Add(double m, double n)
        {
            Console.WriteLine("{0} Add {1} is {2}", m, n, m + n);
            return m + n;
        }

        public double Red(double m, double n)
        {
            Console.WriteLine("{0} Reduce {1} is {2}", m, n, m - n);
            return m - n;
        }

        public double Multi(double m, double n)
        {
            Console.WriteLine("{0} Multi {1} is {2}", m, n, m * n);
            return m * n;
        }


        public double Div(double m, double n)
        {
            Console.WriteLine("{0} Divide {1} is {2}", m, n, m / n);
            return m / n;
        }

    }


    public class Stack<T>
    {
        /// <summary>
        /// 堆栈类
        /// </summary>
        /// 
        T[] data;
        int top;
        public Stack()
        {
            data = new T[10];
            top = -1;
        }
        public bool StackEmpty()
        {
            return -1 == top;
        }
        public void Push( T e)
        {
            top ++;
            data[top] = e;
        }
        public void Pop( ref T e)
        {
            e = data[top];
            top--;
        }
    }

    public class MyOpe<T> 
    {
        /// <summary>
        /// 模板类,操作测试,含属性成员数组,有构造函数
        /// </summary>
        public T[] temp;
        public MyOpe()
        {
            temp = new T[3];
        }
        public void MySwap(ref T para1, ref T para2)
        {
            temp[0] = para1;
            para1 = para2;
            para2 = temp[0];
        }
        public void MySwap(T para1, T para2)
        {
            temp[0] = para1;
            para1 = para2;
            para2 = temp[0];
        }
        public void MySwap( )
        {
            temp[2] = temp[0];
            temp[0] = temp[1];
            temp[1] = temp[2];
        }
        public void show()
        {
            Console.WriteLine( "\n"+temp[0].ToString());
            Console.WriteLine( "\n"+temp[1].ToString());
            Console.WriteLine( "\n"+temp[2].ToString());
        }
    }
    public class MyPurelOpe<T>
    {
        /// <summary>
        /// 模板操作类,含一个属性成员,无构造函数
        /// </summary>
        public T temp;
        public void MySwap(ref T para1, ref T para2)
        {
            temp = para1;
            para1 = para2;
            para2 = temp;
        }
        public void show()
        {
            Console.WriteLine("\n" + temp.ToString()+"\n");
        }
    }

    public interface Ia
    {
        /// <summary>
        /// 接口定义
        /// </summary>
        /// <returns></returns>
        double getArea();
        double getCircumference();
    }

    public interface Ib
    {
        /// <summary>
        /// 接口定义
        /// </summary>
        void showInfo();
        void showDetialInfo();
    }

    public interface Ic
    {
        /// <summary>
        /// 接口定义
        /// </summary>
        double getScale();
    }

    public interface Id
    {
        /// <summary>
        /// 接口定义
        /// </summary>
        double getCubeScale();
        double getVolume();
    }

    public class Rectangle:Ia,Ib
    {
         private double x,y;
         public Rectangle()
         {
             x = 1.00;
             y = 1.00;
             Console.WriteLine("Rectangle Constructor");
         }
         ~Rectangle()
         {
             Console.WriteLine("Rectangle Deconstructor");
         }
         public Rectangle( double x1, double y1)
        {
            x = x1;
            y = y1;
            Console.WriteLine("Rectangle Constructor");
        }
         public virtual double getArea()
         {
             return x * y;
         }
         public virtual double getCircumference()
         {
             return 2*(x + y);
         }
         public virtual void showInfo()
         {
             Console.WriteLine("Rectangle element x is : {0}", x);
             Console.WriteLine("Rectangle element y is : {0}", y);
         }
         public virtual void showDetialInfo()
         {
             Console.WriteLine("Rectangle element x is : {0}", x);
             Console.WriteLine("Rectangle element y is : {0}", y);
             Console.WriteLine("Rectangle Area is : {0}", getArea());
             Console.WriteLine("Rectangle circumference is : {0}", getCircumference());
         }
    }

     public class Circle : Rectangle,Ic
     {
         double x, y;
         public Circle()
         {
             x = 3.00;
             y = x;
             Console.WriteLine("Circle Constructor");
         }
         ~Circle()
         {
             Console.WriteLine("Circle Deconstructor");
         }
         public Circle(double x1, double y1)
         {
             x = x1;
             y = y1;
             Console.WriteLine("Circle Constructor");
         }
         public override double getArea()
         {
             return 3.1415926*x*y;
         }
         public override double getCircumference()
         {
             return 3.1415926 * (x + y);
         }
         public virtual double getScale()
         {
             return x>y ? 2*x : 2*y;
         }
         public override void showInfo()
         {
             Console.WriteLine("Circle element x is : {0}", x);
             Console.WriteLine("Circle element y is : {0}", y);
         }
         public override void showDetialInfo()
         {
             Console.WriteLine("Circle element x is : {0}", x);
             Console.WriteLine("Circle element y is : {0}", y);
             Console.WriteLine("Circle Area is : {0}", getArea());
             Console.WriteLine("Circle Circumference is : {0}", getCircumference());
             Console.WriteLine("Circle Size-Scale is : {0}", getScale());
         }
     }

     public class Ellipsoid : Circle, Id
     {
         double x, y, z;
         public Ellipsoid()
         {
             x = 3.00;
             y = x;
             z = y;
             Console.WriteLine("Ellipsoid Constructor");
         }
         ~Ellipsoid()
         {
             Console.WriteLine("Ellipsoid Deconstructor");
         }
         public Ellipsoid(double singlePara)
         {
             x = singlePara;
             y = x;
             z = x;
             Console.WriteLine("Ellipsoid Constructor");
         }
         public Ellipsoid(double x1, double y1, double z1)
         {
             x = x1;
             y = y1;
             z = z1;
             Console.WriteLine("Ellipsoid Constructor");
         }
         public override double getArea()
         {
             double p = 1.6075;
             p = 4 * 3.1415926 * Math.Pow((Math.Pow(x * y, p) + Math.Pow(x * z, p) + Math.Pow(z * y, p))/3.00, 1.0 / p);
             return getVolume();
         }
         public override double getCircumference()
         {
             return 2*3.1415926*getScale();     ///---/// 最大切面的 circumference
         }
         public override double getScale()
         {
             return Math.Max(z,Math.Max( x, y));
         }
         public virtual double getCubeScale()
         {
             return x*y*z;
         }
         public virtual double getVolume()
         {
             return 4.0/3.0*3.1415926*x*y*z;
         }
         public override void showInfo()
         {
             Console.WriteLine("Following are the informations of the attributes of current element :");
             Console.WriteLine("Ellipsoid element x is : {0}", x);
             Console.WriteLine("Ellipsoid element y is : {0}", y);
             Console.WriteLine("Ellipsoid element z is : {0}", z);
         }
         public override void showDetialInfo()
         {
             Console.WriteLine("Ellipsoid element x is : {0}", x);
             Console.WriteLine("Ellipsoid element y is : {0}", y);
             Console.WriteLine("Ellipsoid element z is : {0}", z);
             Console.WriteLine("Ellipsoid Area is : {0}", getArea());
             Console.WriteLine("Ellipsoid Circumference is : {0}", getCircumference());
             Console.WriteLine("Ellipsoid Size-Scale is : {0}", getScale());
             Console.WriteLine("Ellipsoid Volume is : {0}", getVolume());
         }
     }
}</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABNkAAAIuCAYAAACCb958AAAgAElEQVR4AezdB3xb5b3/8Z/t2Nlx9nJwEjIgO4FAQ0IhQCCUvUtp6eA25Q+Ulg4o0HJpS2/XZXZAW1o6KBS4QAstlNVQaKEBAhlkQAZJSEyWs8j2/J/vsR/5SJZsWZItyfo8eSk6ks58S7J0vnpGXmlpaa1REEAAAQQQQAABBBBAAAEEEEAAAQQQQCBhgfyEl2RBBBBAAAEEEEAAAQQQQAABBBBAAAEEEPAFCNl4ISCAAAIIIIAAAggggAACCCCAAAIIIJCkACFbkoAsjgACCCCAAAIIIIAAAggggAACCCCAACEbrwEEEEAAAQQQQAABBBBAAAEEEEAAAQSSFCBkSxKQxRFAAAEEEEAAAQQQQAABBBBAAAEEECBk4zWAAAIIIIAAAggggAACCCCAAAIIIIBAkgKEbEkCsjgCCCCAAAIIIIAAAggggAACCCCAAAKEbLwGEEAAAQQQQAABBBBAAAEEEEAAAQQQSFKAkC1JQBZHAAEEEEAAAQQQQAABBBBAAAEEEECAkI3XAAIIIIAAAggggAACCCCAAAIIIIAAAkkKELIlCcjiCCCAAAIIIIAAAggggAACCCCAAAIIELLxGkAAAQQQQAABBBBAAAEEEEAAAQQQQCBJAUK2JAFZHAEEEEAAAQQQQAABBBBAAAEEEEAAAUI2XgMIIIAAAggggAACCCCAAAIIIIAAAggkKUDIliQgiyOAAAIIIIAAAggggAACCCCAAAIIIEDIxmsAAQQQQAABBBBAAAEEEEAAAQQQQACBJAUI2ZIEZHEEEEAAAQQQQAABBBBAAAEEEEAAAQQI2XgNIIAAAggggAACCCCAAAIIIIAAAgggkKQAIVuSgCyOAAIIIIAAAggggAACCCCAAAIIIIAAIRuvAQQQQAABBBBAAAEEEEAAAQQQQAABBJIUIGRLEpDFEUAAAQQQQAABBBBAAAEEEEAAAQQQIGTjNYAAAggggAACCCCAAAIIIIAAAggggECSAoRsSQKyOAIIIIAAAggggAACCCCAAAIIIIAAAoRsvAYQQAABBBBAAAEEEEAAAQQQQAABBBBIUoCQLUlAFkcAAQQQQAABBBBAAAEEEEAAAQQQQICQjdcAAggggAACCCCAAAIIIIAAAggggAACSQoQsiUJyOIIIIAAAggggAACCCCAAAIIIIAAAggQsvEaQAABBBBAAAEEEEAAAQQQQAABBBBAIEkBQrYkAVkcAQQQQAABBBBAAAEEEEAAAQQQQAABQjZeAwgggAACCCCAAAIIIIAAAggggAACCCQpQMiWJCCLI4AAAggggAACCCCAAAIIIIAAAgggQMjGawABBBBAAAEEEEAAAQQQQAABBBBAAIEkBQjZkgRkcQQQQAABBBBAAAEEEEAAAQQQQAABBAjZeA0ggAACCCCAAAIIIIAAAggggAACCCCQpAAhW5KALI4AAggggAACCCCAAAIIIIAAAggggAAhG68BBBBAAAEEEEAAAQQQQAABBBBAAAEEkhQgZEsSkMURQAABBBBAAAEEEEAAAQQQQAABBBAgZOM1gAACCCCAAAIIIIAAAggggAACCCCAQJIChGxJArI4AggggAACCCCAAAIIIIAAAggggAAChGy8BhBAAAEEEEAAAQQQQAABBBBAAAEEEEhSgJAtSUAWRwABBBBAAAEEEEAAAQQQQAABBBBAgJCN1wACCCCAAAIIIIAAAggggAACCCCAAAJJChCyJQnI4ggggAACCCCAAAIIIIAAAggggAACCBCy8RpAAAEEEEAAAQQQQAABBBBAAAEEEEAgSQFCtiQBWRwBBBBAAAEEEEAAAQQQQAABBBBAAAFCNl4DCCCAAAIIIIAAAggggAACCCCAAAIIJClAyJYkIIsjgAACCCCAAAIIIIAAAggggAACCGSXQF5eXsp3mJAt5aSsEAEEEEAAAQQQQAABBBBAAAEEEEAgkwVqa2tTvnuEbCknZYUIIIAAAggggAACCCCAAAIIIIAAArkmQMiWa884x4sAAggggAACCCCAAAIIIIAAAgggkHIBQraUk7JCBBBAAAEEEEAAAQQQQAABBBBAAIFcEyBky7VnnONFAAEEEEAAAQQQQAABBBBAAAEEEEi5ACFbyklZIQIIIIAAAggggAACCCCAAAIIIIBArgkQsuXaM87xIoAAAggggAACCCCAAAIIIIAAAgikXICQLeWkrBABBBBAAAEEEEAAAQQQQAABBBBAINcECNly7RnneBFAAAEEEEAAAQQQQAABBBBAAAEEUi5AyJZyUlaIAAIIIIAAAggggAACCCCAAAIIIJBrAoRsufaMc7wIIIAAAggggAACCCCAAAIIIIAAAikXIGRLOSkrRAABBBBAAAEEEEAAAQQQQAABBBDINQFCtlx7xjleBBBAAAEEEEAAAQQQQAABBBBAAIGUCxCypZyUFSKAAAIIIIAAAggggAACCCCAAAII5JoAIVuuPeMcLwIIIIAAAggggAACCCCAAAIIIIBAygU6pHyNca5w9NBKG3FIpQ3sW209utbEuRSzIYAAAggggAACCCCAAAIIIIAAAgi0R4GN5QW2eVsHW7C8yD7cm331wto0ZFOY9sVPfGinH7fXBnnhGgUBBBBAAAEEEEAAAQQQQAABBBBAAIGgQJUXGb25rJP99i/d7bn/dA4+lNHTeaWlpbVtsYeXnLbHrvvcTmqttQU220AAAQQQQAABBBBAAAEEEEAAAQTagcD8pR3tq7f2sQ2b27SeWEJybRKy3fj5nfb58z5MaAdZCAEEEEAAAQQQQAABBBBAAAEEEEAgdwW27iiwy7/b1xa+2zGjEVo1ZOvUsdauv2ynffrM3U0irNvWvcnHeRABBBBAAAEEEEAAAQQQQAABBBBAoP0K9Oxy0Io7V8Q8wOXvFdkP7+tp/3qrU8x50v1Aq4ZsZx6/z+76RnmjY9xzsNB+OneSvbKm1Bas62Mf7su+zuwaHRR3IIAAAggggAACCCCAAAIIIIAAAggkLDCs/wH7yLAP7OIj37FZY9c3Ws+6DzrYqVcOsoMVeY0ey4Q7Wq1B69gRFXb1J3Y1OsY31gywzz1whllhV/voyaPt+E/1tNLhxY3m4w4EEEAAAQQQQAABBBBAAAEEEEAAgdwQ2Lenwla+u91WLN9qF/zqUPvUsWvth2fOtW4dK0MAQwdX2WXn7LZ7HukRui+TJlqtJtvnvIO+6Qs7wo717Q197Lhbz7dTzxpln7t8shUVFYQ9zg0EEEAAAQQQQAABBBBAAAEEEEAAgdwWWOWFbbfe8i8b32e1PfqFv4VhfLg332Z8usT27s+82myt1k5z9vR9YQhVNfn2Xw+daSfOGmKXX30kAVuYDjcQQAABBBBAAAEEEEAAAQQQQAABBCQw8rDe9p1bZ9m/VpbYL18aF4bSo2uNHXvE/rD7MuVGq4RsOuAjxhwMO8YH5o22bXu72mVXHR12PzcQQAABBBBAAAEEEEAAAQQQQAABBBAICgwY2NU++/+m2v88My14tz89fVJ45tRohjTd0SohW99e1dYhoiXogk2lNn7yQOvarShNh8pmEUAAAQQQQAABBBBAAAEEEEAAAQSyRWDG8UNsx54O9u7mnmG7fOiQhn7awh5I841WGfhgUN
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值