目录
一、方法
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("喵喵叫");
}
}
显示结果: