赞
踩
<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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。