点点滴滴访问量:
 

4、数组参数

   如果形参表中包含了数组型参数,那么它必须在参数表中位于最后,另外允许是一维数组。数组型参数不能用ref out 修饰符。

下面是一个例子,在这个例子中我遇到两个问题:

1.      params关键字的功能

2.      怎么样把输入的数字 做为数组使用

using System;

 

namespace study121

{

    /// <summary>

    /// Class1 的摘要说明。

    /// </summary>

    class Class1

    {

        static void F( params int [] args) //这里这个params 关键字对应F10203040)和F();如果没有这个关键字的话就会出错

        {

            Console.WriteLine("Array contains {0} elements:",args.Length);

            foreach (int i in args)

            {

                Console.Write(" {0}", i);

            }

            Console.WriteLine();

 

        }

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main(string[] args)

        {

            int [] a = {1,2,3};

            F(a);

            F(10,20,30,40);

            Console.WriteLine("请输入数字:");

            int b =Convert.ToInt32(Console.ReadLine());//怎么解决这里的数组问题,就是把输入进来的数字做为数组来做为参数?

            F(b);

            F();

        }

    }

}

 

 

 

 

 

 

 

 

 

 

5 、静态方法

C#的类中可以包含两种方法:静态方法和非静态方法。

使用了static 修饰符的方法为静态方法,反之则是非静态方法。

静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例,而是采用类名.静态方法的格式

 

下面是一个使用静态方法的例子

using System;

 

namespace study1214

{

   

    class Class1

    {

   

 

        [STAThread]

        static void Main(string[] args)

        {

            int i = MyClass.Add(3,5);   //调用静态方法

            Console.WriteLine(i);

        }

 

    }

    class MyClass

    {

        public static int Add(int x,int y )

        {

            return x + y[zsp1] ;

        }

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6、方法的重载

方法重载的完整定义是:可以在一个类中定义多个同名方法,这些方法通过不同的参数类型或者参数个数来区分。注意,不能仅仅通过返回值类型的不同来定义多个方法。

 

下面是一个例子,有一个问题是:怎样通过参数来调用方法?

 

using System;

 

namespace ffcz121

{

   

    class Class1

    {

   

        [STAThread]

        static void Main(string[] args)

        {

            bool b1 = MyClass.IsEqual(5,5);//在这里怎么可以实现 通过参数给这个方法赋值?

            bool b2 = MyClass.IsEqual("abc","ABC");

            Console.WriteLine(b1);

            Console.WriteLine(b2);

        }

    }

    class MyClass

    {

        public static bool IsEqual(int x,int y)

        {

            if (x == y)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

        public static bool IsEqual(string s1,string s2)

        {

            if (s1 == s2)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

    }

}


 [zsp1]注意:静态方法中不能使用非静态成员,如class A

{

Int x ;

Static int y;

Static int F()

{

X=1; //错误,不允许访问非静态成员

Y=2; //正确

}

}

posted on 2006-04-12 16:26  sopper  阅读(282)  评论(0编辑  收藏  举报