c# 函数的方法和作用域

在学完java之后,感觉c#的和java的是很相似的,所以这里只是将其中需要注意的事项列出来。

1.调用方法时,如果不是static的话,即时在同一个类中,直接开始调用函数也是编译出错的。例如

        static void Main(string[] args)

        {

            int c = addValue(1, 2);

        }

        /*static*/ int addValue (int a, int b)

        {

            return a + b;

        }

显然上面的代码是错误的,那么就需要将static注释去掉。

2.参数数组

C#中的参数数组就是变长数组在c#中的实现。但是必须满足下面的条件,首先该参数数组必须是函数参数的最后一个参数,

其次是该参数数组必须使用params来指定。

        static int Sum (params int[] arr)

        {

            int sum = 0;

            foreach (int n in arr)

            {

                sum += n;

            }

            return sum;

        }

3c#中的函数指针
使用delegate来实现函数指针的功能
        delegate int CALCULATE(int a, int b);
        static int Add (int a, int b)
        {
            return (a + b);
        }
        static int Minus (int a, int b)
        {
            return (a - b);
        }
        static void Main (String[] args)
        {
            Console.WriteLine("Enter your option (add \\ minus) ?");
            string input = Console.ReadLine();
            CALCULATE cal;
            switch (input)
            {
                case "add" :
                    cal = Add;
                    break;
                case "minus" :
                    cal = Minus;
                    break;
                default :
                    cal = null;
                    break;
            }
            cal (1, 2);
            Console.ReadKey();
        }

待续,未完。。。

posted @ 2010-02-27 16:02  qiang.xu  阅读(704)  评论(0编辑  收藏  举报