delegate 委托一例(3)

原创 2012年03月26日 12:26:47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleTest
{
    public delegate void DelegCalc(params int[] oParams);

    public class delegateTest
    {

        public static void Calc(DelegCalc deleg, params int[] oParams)
        {
            deleg(oParams);
        }

        //三角形
        public static void CalcArea_Triangle(int[] iWidth)
        {
            Console.WriteLine("三角形 宽度:{0},高度:{1},面积:{2}", iWidth[0], iWidth[1], iWidth[0] * iWidth[1] / 2.0);
        }

        //长方形
        public static void CalcArea_Rectangle(int[] iWidth)
        {
            Console.WriteLine("长方形 宽度:{0},高度:{1},面积:{2}", iWidth[0], iWidth[1], iWidth[0] * iWidth[1]);
        }

        //梯形
        public static void CalcArea_Trapezoid(int[] iA)
        {
            Console.WriteLine("梯形 上底:{0},下底:{1},高度:{2},面积:{3}", iA[0], iA[1], iA[2], (iA[0] + iA[1]) * iA[2] / 2.0);
        }

        //圆
        public static void CalcArea_Circle(int[] iR)
        {
            Console.WriteLine("圆 半径:{0},面积:{1}", iR[0], Math.PI * iR[0] * iR[0]);
        }

        //三角形周长
        public static void CalcGirth_Triangle(int[] iA)
        {
            Console.WriteLine("三角形 边1:{0},边2:{1},边3:{2},周长:{3}", iA[0], iA[1], iA[2], iA[0]+ iA[1]+iA[2]);
        }

        public static void CalcGirth_Rectangle(int[] iA)
        {
            Console.WriteLine("长方形 边1:{0},边2:{1},周长:{2}", iA[0], iA[1], (iA[0] + iA[1]) * 2);
        }

        public static void CalcGirth_Trapezoid(int[] iA)
        {
            Console.WriteLine("梯形 边1:{0},边2:{1},边3:{2},边4:{3},周长:{4}", iA[0], iA[1], iA[2], iA[3], iA[0] + iA[1] + iA[2] + iA[3]);
        }

        public static void CalcGirth_Circle(int[] iR)
        {
            Console.WriteLine("圆 半径:{0},周长:{1}", iR[0],2*Math.PI*iR[0]);
        }

    }

    class delegateClass2
    {
        static void Main()
        {
            delegateTest.Calc(delegateTest.CalcGirth_Circle, new int[]{3});//圆周长
            delegateTest.Calc(delegateTest.CalcGirth_Rectangle, new int[] { 3,4 });//长方形周长
            delegateTest.Calc(delegateTest.CalcGirth_Trapezoid, new int[] { 3, 4,5,6 });//梯形周长
            delegateTest.Calc(delegateTest.CalcGirth_Triangle, new int[] { 3, 4, 5, 6 });//三角形周长
            delegateTest.Calc(delegateTest.CalcArea_Circle, new int[] { 3 });//圆面积
            delegateTest.Calc(delegateTest.CalcArea_Rectangle, new int[] { 3,4 });//长方形面积
            delegateTest.Calc(delegateTest.CalcArea_Trapezoid, new int[] { 3, 4,5 });//梯形面积
            delegateTest.Calc(delegateTest.CalcArea_Triangle, new int[] { 3, 4});//三角形面积
            Console.ReadLine();
        }
    }
}


运行效果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols)

我们几乎可以在任何组件中利用经典的委托(delegate)和数据源协议(data-source protocols)。如果你想显示一些数据,那么数据源协议可能就非常适合你,例如你有以下问题: ...

C#基础-3:委托(Delegate)

委托(delegate)简单来看就是一种指向方法的引用对象。其实,delegate就是一个类,其持有所指向的方法的地址。 委托可以引用一个方法,也可以应用多个方法,当引用多个方法的时候,称之为多路广播...

ios两视图间委托(delegate)传值

现有两个视图(ViewController,ViewController1),从ViewController中带参数跳转到ViewController1,在ViewController1选中数据后带有...
  • f10_s
  • f10_s
  • 2014-10-08 15:26
  • 958

.Net C#委托 delegate

  • 2011-01-11 14:09
  • 205KB
  • 下载

C++中实现委托(delegate)

  • 2011-05-06 13:07
  • 5.10MB
  • 下载

C# EventHandler and Delegate(委托的使用)

委托的声明 public delegate void MyDelegate(string str); 注 1、委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是...
  • WnLn25
  • WnLn25
  • 2012-01-12 20:44
  • 22043

delegate_委托

  • 2014-05-19 19:25
  • 663KB
  • 下载

c# delegate_委托

  • 2014-04-21 14:08
  • 663KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)