C#--方法(函数)

目录

一、方法

二、方法的定义

三、方法的调用

四、方法的重载

五、方法的重写


一、方法

1.把可以重复执行完成某一个任务的代码写成一个方法,可以减少相同代码的重复书写。函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完后可能有一些执行结果给我们。要求的数据叫做参数,返回的执行结果就是返回值。
2.方法也可以叫做函数,每一个C#函数至少有一个Main方法(主方法),主方法也叫主函数,每一个程序只能有一个主方法,但是可以有多个方法(函数)。
3.方法的使用需要先定义,在调用。定义方法--调用方法

二、方法的定义

[访问修饰符] static 返回值(的类型) 方法名([参数列表])
{
         方法体
}

举例:下面是一个用来判断所输入的是否为数字的方法

(1)访问修饰符:可以限制这个方法的可见性
(2)返回类型:两种情况(函数可以有返回值,也可以没有返回值)
         a.函数没有返回值:用void代表这个方法不需要返回值,方法体页不需要写return语句,写return语句也不会报错。
         b.函数有返回值:像上述代码一样,方法体中一定要写return语句,否则会报错。return可以立即退出方法。
(3)方法名:首字母需要大写,方法名开头大写,参数名开头小写,参数名、变量名要有意义
(4)参数列表:用圆括号括起来,一个方法可以有参数,也可以没有参数,可以有一个参数,也可以有多个参数,参数页可以是一个数组。

//1.第一种:此方法最简单的方法无参数无返回值
public static void Show()       //此方法是无返回值,无参数的方法
{		
    Console.WriteLine("今天天气很好!");
}

//2.第二种:有参数,有返回值,上面的判断输入内容是否为字符串就属于这种
public static int IsNumber(string strNumber)
{
    
}

//3.第三种:无参数,有返回值
string str=Console.ReadLine();   //无参数,有返回值

//4.第四种:无返回值
Console.WriteLine();            //无返回值,参数可有可无

三、方法的调用

对于静态方法,调用有两种方式

1.如果在同一个类中,直接写名字调用就可以了

2.或者类名.方法名();

不在同一个类中:一定要用类名.方法名();

下面以一个实例说明:此题中,定义了一个方法IsNumber判断用户输入是否是数字,如果是,则返回,不是就提示用户重新输入。int result=IsNumber(str);  这行代码是方法的调用,返回一个int类型的数字

        // 此方法用来判断用户输入的是否是数字

		public static int IsNumber(string strNumber)
        {
            while (true)
            {
                try
                {
                    int Intnum = int.Parse(strNumber);      //将字符串转换为数字
                    return Intnum;                          //转换成功,返回这个数字
                }
                catch
                {
                    Console.WriteLine("输入的不是数字,请重新输入!");    //转换不成功的话,提示用户重新输入
                    strNumber=Console.ReadLine();           //接收用户重新输入的字符串
                }
            }
        }

		static void Main(string[] args)
        {
            //读取输入的内容,判断用户输入的是否是数字,将这个判断定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)1
            Console.WriteLine("请您输入年龄");        //提示用户输入自己的年龄
            string str=Console.ReadLine();           //定义一个字符串变量接收用户输入的内容
            int result=IsNumber(str);                //调用方法,判断输入的是否是数字,是的话返回一个int类型的数字
            Console.WriteLine("您的年龄为{0}岁",result);   //将结果显示出来
            Console.ReadKey();
        }

四、方法的重载

方法名相同,功能相同,但是参数不同(参数的个数不同,参数的类型也不同)这就叫做方法的重载。方法重载和返回值无关 ,只和和参数的类型和个数有关。

举例:下面Add方法都是求两个数的和,但是参数个数不同,参数的类型不同,有的参数是int类型,有的参数是double类型。

        public static int Add(int num1, int num2)
        {
            return num1 + num2;
        }

        public static double Add(double num1, double int2)
															
        {
            return num1 + num1;
        }

        public static double Add(double num1, int num2, int num3)
        {
            return num1 + num2;
        }

五、方法的重写

1.方法的重写主要是指子类继承父类的时候,可以重写父类当中的方法,比如,动物是父类,有叫这个属性

,它的子类猫的方法是喵喵叫,它的子类狗的方法是汪汪叫,这时候在调用父类方法的时候,就可以将父类的

方法进行重写。

2.前提:子类要想重写父类的方法,在父类方法中要加上virtual关键字,在子类方法中要加上override关键字

virtaul关键字用于将方法定义为支持多态,有virtual关键字修饰的方法称为“虚方法”。

     class Program
    {
        static void Main(string[] args)
        {
            Anmial an = new Anmial();       //实例化animal这个对象
            an.Shout();                     //调用animal叫的方法

            Dog dog = new Dog();            //实例化Dog对象
            dog.Shout();                    //调用Dog汪汪叫的方法

            Cat cat = new Cat();            //实例化Cat对象
            cat.Shout();                    //调用Cat喵喵叫的方法

            Console.ReadKey();
        }
       

        
    }
    public class Anmial
    {
        public virtual void Shout()
        {
            Console.WriteLine("叫");
        }
    }

    public class Dog:Anmial
    {
        public override void Shout()
        {
            Console.WriteLine("汪汪叫");
        }
    }

    public class Cat : Anmial
    {
        public override void Shout()
        {
            Console.WriteLine("喵喵叫");
        }
    }

显示结果:

发布了71 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/104397122