03 方法和作用域

方法:是具名的语句序列。每个方法都有名称和主体。方法名应该是一个有意义的标识符。方法主体包含方法被调用时实际执行的语句。

1.创建方法

1.1.声明方法

语法:

returnType methodName( parameterList )

{

//这里添加方法主体语句

}

returnType(返回类型)是类型名称,指定方法返回的数据类型。可以是任何类型,如int或string。没有返回值则必须用关键字void

methodName(方法名)是调用方法时所用的名称。方法名和变量名遵循相同的标识符命名规则。

parameterList(参数列表)是可选的,描述了允许传给方法的数据的类型和名称。要像声明变量那样,先写类型名,再写参数名,参数之间以逗号隔开。

方法主体语句是调用方法时要执行的代码。必须放到大括号({})中

例如:

//带返回值

int add(int number1,int number2)

{

//方法主体语句

}

//不带返回值

void show(string str)

{

Console.WriteLine($"hi  {str}");

}

1.2.从方法返回数据

如果希望方法返回数据(返回类型不是void),必须在方法内部写return语句。

例如:

int add(int number1,int number2)

{

return number1 + number2;

}

return通常放到方法尾部,因其导致方法结束,控制权返回调用方法的那个语句,return后的任何语句都不执行。

如果不希望方法返回数据(返回类型void),可利用return语句的一个变体立即从方法中退出。为此,请先写关键字return,紧跟一个分号。

例如:

void show(string str)

{

    Console.WriteLine($"hi  {str}");

    return;

}

如果方法什么都不返回,甚至可以省略return语句,因为一旦执行到方法尾部的结束大括号“}”,方法就会自动结束。虽然经常这样写,但不是良好的编程风格。

 

1.3使用表达式主体方法

有的方法十分简单,就是执行单一任务或返回计算结果,不涉及任何额外逻辑。C#6允许以一种简化的形式写由单个表达式构成的方法。这种方法仍然可以获取参数并返回值,和以前见过的方法并无二致。以下代码是add和show方法的简化版本:

int add(int number1,int number2) => number1 + number2;

void showResult(string str) => Console.WriteLine($"hi  {str}");

 

1.4调用方法

方法终极目的就是被调用,用方法名调用方法,指示它执行既定任务。

语法:

result = methodName(argumentList);

例如:

调用上面的add和show方法

sum = add(1,34);

show("你好");

 

2.使用作用域

2.1定义局部作用域

界定方法主体的大括号({})定义了方法作用域。方法主体中声明的任何变量都具有那个方法的作用域;方法结束,它们也随之消失。

局部变量:在方法作用域里声明的变量

例如:

void method()

{

    int a;//局部变量

}

注意:不能在当前方法中使用其它方法里的局部变量

 

2.2定义类作用域

界定类主体大括号({})定义了类作用域。

字段:类里面定义的变量。和局部变量相反,可用字段在不同方法之间共享信息。

例如:

class  Example

{

    int number = 2;



    void add()

    {

        number = 1;

        int sum = 2+number;

    }



    void show()

    {

        Console.WriteLine($"{number}");

    }

}

 

3.使用可选参数和具名参数

3.1定义可选参数

指定可选参数是在定义方法时使用赋值操作符为该参数提供默认值。以下optMethod方法的第一个参数是必须的,因其没有提供默认值,但第二个和第三个参数可选:

void optMethod(int first,double second = 0.0,string third = "Hello")

{

//…

}

可选参数只能放在必须参数之后。含可选参数的方法在调用方式上与其它方法无异。都是指定方法名,提供任何必须参数(实参)。区别在于,与可选参数对应的实参可以省略,方法运行时会为省略的实参使用默认值。下例第一个optMethod方法调用为三个参数都提供了值。第二个调用只提供了两个,对应第一个和第二个参数。方法运行时,第三个参数使用默认值“Hello”:

optMethod(99,123.45,"World");//全部三个参数都提供了实参

optMethod(100,54.321);//只为前两个参数提供了实参

 

3.2传递具名参数

C#还允许按名称指定参数。这样就可按照不同顺序传递实参。

例如:

optMethod(first : 99 , second : 123.45 , third : "World");

optMethod(first : 100 , second : 54.321);

注:利用具名参数,实参可按任意顺序传递,也可省略实参

 

4.方法的重载

语法:

方法名必须相同     [参数签名必须不同]

重载两个方法的返回值类型没有要求

访问权限没有要求

比如上面的add()和show()方法

int add(int a,int b)

{

    return  a+b;

}

int add(string a,string b)

{

    return int.Parse(a)+int.Parse(b);

}



void show()

{

    Console.WriteLine($"Hello!");

}



void show(string number)

{

    Console.WriteLine($"{number}");

}

上面的add()和show()就是方法的重载,add()方法是参数个数相同,但参数类型不同,而show()方法则是参数个数不同

参考书籍:《Visual C#从入门]到精通》

发布了46 篇原创文章 · 获赞 53 · 访问量 3719

猜你喜欢

转载自blog.csdn.net/qq_38992372/article/details/104975907
03
今日推荐