C#的方法

本文深入解析C#中的方法概念,包括方法头的定义、返回类型、参数传递,以及本地变量、常量的声明、作用域和使用规则。通过实例演示了类型推断和var关键字的应用。了解嵌套块中的变量行为,以及静态方法和常量的关键特性。
摘要由CSDN通过智能技术生成

方法是一块具体名称的代码。可以使用方法的名称从别的地方执行代码,也可以把数据传入方法并接受数据输出
方法是类的函数成员。方法有两个主要部分:方法头和方法体。
在这里插入图片描述

方法头指定方法的特征,包括:
1.方法是否返回数据,如果返回?又是返回什么类型;
2.方法的名称;
3.哪种类型的数据可以传递给方法或从方法返回,怎么处理这些数据。
方法体包含可执行的代码的语句序列。执行过程从方法体的第一条语句开始,直到这个方法结束。
方法头的形式
在这里插入图片描述

方法体的内部代码执行:
方法体是一个块,是大括号括起来的语句序列,块可包含下面的项目:

  1. 本地变量;
  2. 控制流结构;
  3. 方法调用;
  4. 内嵌的块;
    在这里插入图片描述

本地变量;
下面的这一行代码展示了本地变量声明的语法。可选的初始化语句由等号和用于初始化变量的值组成。
在这里插入图片描述

本地变量的存在性和生存性仅限于创建他的块以及内嵌的块。
(1) 他从声明他的那一点开始存在。
(2) 他在块完成执行的时候结束存在。
可以在方法体内任意位置声明本地变量,但必须在使用他们前声明
Static void Main()
{
int myInt=15;
SomeClass ac =new SomeClass();
}
展示了两个本地变量的声明和使用。第一个是int类型变量,第二个是SomeClass类型变量。
对比实例字段和本地变量
在这里插入图片描述

类型推断和var关键字
如果观察下面的代码,你会发现在声明的开始部分提供类型名时,你提供的是编译器能从初始化语句的右边推断出来的信息。
(1) 在第一个变量声明中,编译器能推断出15是int类型;
(2) 在第二个声明中,右边的对象创建表达式返回了一个MyExcellentClass类型的对象。
所以在两种情况中,在声明的开始部分包括类型名是多余的。
Static void Mian()
{
int total=15;
MyExcellentClass mec = new MyExcellentClass();
}
为了避免这种多余,可以在变量声明的开始部分的类型名的位置使用新的关键字var,如
在这里插入图片描述

Var关键字并不是特定类型变量的符号。他只是句法上的速记,表示任何 从初始化语句的右边推断出的类型。在第一个声明中,他是int的速记;在第二个声明中,他是MyExcellentClass的速记。在前文中使用类型名的代码片段和使用var关键字的代码片段在语义上他们是等价的。
使用var关键字有一些重要条件:
(1) 只能用于本地变量,不能用于字段;
(2) 只能在变量声明中包含初始化时使用;
(3) 一旦编译器推断出变量的类型,他就是固定而且不能更改的。
//var关键不像JavaScript的var那样可以引用不同的类型。他是从等号右边推断出的实际类型的速记。
Var关键字并不改变C#的强类型性质。
嵌套块中的本地变量:
方法体内部可以嵌套其他的块。
(1) 可以有任意数量的块,并且他们既可以是顺序的也可以更深层嵌套的。块可以嵌套到任意级别。
(2) 本地变量可以在嵌套块的内部声明,并且和所有的本地变量一样,他们的生存期和可见性仅限于声明他们的块以及内嵌块。下面的代码说明了两个本地变量的生存期,展示了代码和栈的状态。箭头标出了刚执行过的行。
在这里插入图片描述

(3) 变量var1声明在方法体中,在嵌套之前。
(4) 变量var2声明在嵌套块内部。他从被声明那一刻开始存在,直到声明他的那个块的尾部结束。
(5) 当控制传出嵌套块时,他的本地变量从栈中弹出。
//在C和C++中,可以先声明一个本地变量,然后在嵌套块中声明另一个相同名称的本地变量。在内部范围,内部名称掩盖了外部名称。然而,在C#中不管嵌套级别如何,都不能在第一个名称的有效范围内声明另一个同名的本地变量。
本地常量
本地常量很像本地变量,只是一旦 被初始化,他的值就不能改变了,如同本地变量,本地常量必须声明在块的内部。
常量的两个重要的特征:
(1) 常量声明的时必须初始化。
(2) 常量在声明后不能改变。
常量的核心声明如下所示。语法与字段或变量的声明相同,除了下面内容。
(1) 在类型之前必须加关键字Const。
(2) 必须有初始化语句。初始化值必须在编译期决定,通常是一个预定义简单类型或由组成的表达式。他还可以是unll引用,但他不能是某个对象的引用,因为对象的引用是在运行时决定的。
//关键字Const不是一个修饰符,而是核心声明的一部分。他必须直接放在类型的前面。
在这里插入图片描述

就像本地变量,本地常量声明在方法体或代码块里,并声明他的块结束的地方无效。例如,下面的代码中,类型为内嵌类型double的本地常量Pi在DisplayRadii结束后无效。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥常忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值