| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 439 人关注过本帖
标题:新手求助,期待解答……
只看楼主 加入收藏
xdqy131
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-28
收藏
 问题点数:0 回复次数:3 
新手求助,期待解答……
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class UsingDelegates
    {
       
        static void Main(string[] args)
        {
            long length1=10;
            long length2 = 15;
           
            Console.WriteLine("边长为{0}的正方形面积为:{1}",length1,Square (length1).ToString ());
            Console.WriteLine("半径为{0}的圆形面积为:{1}", length2, Circle(length2).ToString());
            Console.ReadLine();


        }
   
   
   
        public static double Square(long length)
        {
            double area;
            area = Math.Pow(length, 2);
            return area;
        }
        public static double Circle(long length)
        {
            double area;
            area = (4 / 3) * Math.PI * Math.Pow(length, 3);
            return area;
        }
    }
}




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

namespace ConsoleApplication1
{
    class UsingDelegates
    {
        public delegate double myDelegate(long length);
        static void Main(string[] args)
        {
            long length1 = 10;
            long length2 = 15;
            myDelegate myDelegate1 = new myDelegate(Measure.Square);
            myDelegate myDelegeta2 = new myDelegate(Measure.Circle);
            Console.WriteLine("边长为{0}的正方形面积为:{1}", length1, myDelegate1(length1).ToString());
            Console.WriteLine("半径为{0}的圆形面积为:{1}", length2, myDelegeta2(length2).ToString());
            Console.ReadLine();


        }
    }
    class Measure
    {

        public static double Square(long length)
        {
            double area;
            area = Math.Pow(length, 2);
            return area;
        }
        public static double Circle(long length)
        {
            double area;
            area = (4 / 3) * Math.PI * Math.Pow(length, 3);
            return area;
        }
    }
}
求助各位,两段代码的区别及使用效果?谢谢了!
2011-01-01 10:07
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
第一个程序是用传统的C中的方法,主函数直接调用子函数,这个好理解。
第二个程序则直接体现了C#与语言的区别,所有的变量和函数都被严密地封装在类中。
当然两种方法都可以的。建议用第二种的方法,因为是C#程序,就要用C#的风格和规定。

   唯实惟新 至诚致志
2011-01-02 12:39
xdqy131
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-28
收藏
得分:0 
回复 2楼 qq1023569223
嗯,谢谢你的回答。我正在从面向过程向对象过渡,不是很能理解,希望详解。   
    想问下,下面这段代码怎么体现了其封装效果?另外,第一段代码是不是也可以理解为所有东西封装在一个类UsingDelegates中?期待你的回答,谢谢!
2011-01-02 16:39
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
也可以这么说,不过这样就像C里面一样,mian()和子函数是一个整体,所有的变量和函数都全部在一个类中。
在C#中所谓的封装,就是Main()在一个类里面,其它的子函数(C#称为方法)在另一个(可以有多个)类中。特点是,不能有任何的一个方法和变量在类的外面。而C++中的面向对象,main()不在类中,也可以有变量在类外,也可以有方法在类外。总之,C#是严密封装的编程语言。

   唯实惟新 至诚致志
2011-01-02 17:00
快速回复:新手求助,期待解答……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028169 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved