服务热线
153 8323 9821
方法的调用 方法是一种组合一系列语句以执行一个特定操作的方式。它能够为构造程序的语句提供更好的结构和组织。假定要用一个Main()方法来统计某个目录下源代码的行数。我们不是在一个巨大的Main()方法中写下所有代码,而是提供一个更简短的版本,隐藏每一个方法的实现细节。
首先重新讨论一下System.Console.Wriete()、System.Console.WrieteLine()和System.Console.ReadLine()方法。这一次,我们要从方法调用的角度来讨论它们,而不是将重点放在控制台输入和输出技术上面。
static void Main(string[] args) {
string firstName;
string lastName; System.Console.WriteLine("Hey you!");
/// <summary>
/// System为命名空间
/// Console为类型名称
/// Write为方法名称
/// ("Enter you first name:")为参数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param> System.Console.Write("Enter you first name:");
firstName = System.Console.ReadLine();
System.Console.Write("Enter you first name:");
lastName = System.Console.ReadLine();
System.Console.WriteLine("Your full name is {0} {1}.",firstName,lastName);
}
一个方法的调用由以下元素构成:命名空间、类型名称、方法名称、参数以及返回数据类型。在一个完全限定的方法名中,要用句点符号来分割每一个部分。
命名空间
命名空间是一种特殊的分类机制,它将与一个特定功能集有关的所有类型都分组到一起。命名空间有助于防止类型名称发生冲突。
常用的几个命名空间:
using System; //包含基本类型、类型转换、数学计算、程序调用以及环境管理的定义
using System.Collections; //包含了用于处理对象集合的类型。集合通常采取列表或者字典形式的存储机制
using System.Collections.Generics; //这是C#2.0新增的一个命名空间,专门用于处理依赖于泛型的强类型集合
using System.Data; //包含了对数据库中存储的数据进行处理的类型
using System.Drawing; //包含了用于操作显示设备和进行图像处理的类型
using System.Web; //包含用于实现浏览器到服务器通信的类型,
using System.Web.Services; //利用其中包含的类型,我们可以使用简单对象访问协议,通过HTTP来发送和获取数据
using System.IO; //包含了用于处理文件和目录的类型,并提供了文件的处理、加载和保存能力
以上都是.net Fromwork 公共语言运行库(CLR)封装好的类库,引入以上命名空间,可以使用这些类里的方法。
在三层框架中,一个解决方案里的项目和项目的调用需要添加引用,同时也需要在类里添加using引用
类型名称
类型名称可以看做是一种规范,每个方法都有自己的类型名称,假如调用方法和调用者不在同一个类中(比如静态方法Console.Write())就需要使用类型名称限定符(即Console)。和命名空间一样,如果要调用的方法包含在当前类型中,C#允许再调用该方法时省略类型名称。之所以不需要类型名称,是因为编译器能够根据调用者方法推导出类型。
究其本质,类型或者类是对方法及其相关数据进行组合的一种方式。
作用域
之前讲过,作用域将声明的可访问性限制在一个特定的范围中。
在同一个类中A方法调用B方法就不需要指定类型名称,因为两个方法的作用域是相同的。反之,如果在A类中调用B类中的方法,需要指定类型名称。
方法名称
C#要求在类型名称和方法名称之间使用一个句点符号,而且必须在方法名之后跟随一对圆括号,在圆括号内部,可以添加方法要求的任何参数值。
参数
每个方法可以有0~N个参数,而且每个参数都具有特定的数据类型。
方法返回值
void关键字表示方法无返回值。假如方法是int类型,返回值也必须是int类型,否则就会发生编译错误。
不同类型的方法
static void Main(string[] args)&n