4.2.2 方法返回值声明
GetUserInput()和GetFullName()方法除了要求指定参数值,还会返回一个值。很容易就可以辨别一个方法是否有返回值,因为在声明这种方法时,会在方法名之前添加一个数据类型。GetUserInput()和GetFullName()的返回数据类型都是string。虽然一个方法可以指定多个参数,但返回值只能有一个。
一旦方法指定了返回数据类型,而且假定没有错误发生,那么在具体实现这个方法的时候,就必须为每个代码路径(或者会在满足一定条件时连续执行的一系列语句)指定一个return语句。return语句以return关键字开头,后跟这个方法要返回的值。例如,GetFullName()方法的return语句是return firstName + " " + lastName。C#编译器规定,声明方法时指定的返回类型必须与return关键字后面指定的数据的类型匹配。
return语句并非只能在方法实现的末尾出现。相反,每个代码路径都应该有一个return语句。例如,if或switch语句的每个分支或case语句末尾都应该包含一个return语句,如代码清单4-5所示。
代码清单4-5 位于方法实现中部的一个return语句
class Program |
return语句意味着跳到方法的末尾,所以它在switch语句中可以代替break。一旦执行到return,方法调用就会终止。
在某个代码路径中,假如return之后还有其他语句,编译器就会报告一条警告消息,指出那些语句永远都执行不到。虽然C#允许提前返回,但为了增强代码的可读性,应该尽可能地确定单一的退出位置,而不是在方法的多个执行路径中散布多个return语句。
指定void作为返回类型,相当于指出一个方法没有返回值。所以,无法将这种方法的“返回值”赋给一个变量,也无法把它的“返回值”作为参数使用。除此之外,在这种方法内部,return是可有可无的。如果你真的指定了return,那么return关键字之后不应该有任何值。例如在代码清单4-4中,Main()的返回值是void,它没有使用任何return语句。而DisplayGreeting()最后使用了一个return语句,但return之后没有添加任何值。
语言对比:C++——header文件
和C++不同,C#类从来不将实现与声明分隔开。在C#中,不会区分header文件(.h)和实现文件(.cpp)。相反,声明和实现总是出现在同一个文件中。在C# 2.0中,可以将一个类分布到多个文件中,也就是所谓的“分部类”(partial class)。然而,即使在分部类中,方法的声明与实现也是在一起的,这个特点使C#成为一种更清晰、更容易维护的语言。
| 回书目 上一节 下一节 |
|
||||
| · 龙芯要做中国的“奔腾” · 2008年上半年IT技术图.. · 虚拟化的“赤壁之战” · 服务器节能与绿色IT · 微软出价446亿美元收购.. · 脉冲无线电uwb专题 · 802.11n:下一代的无线.. · 云计算时代来临 |
· IT工程师该不该考CCIE.. · 浏览器的战国时代 · 2008年上半年全国软考.. · 无线网络环境 · 无线网状网(MESH) · 无线重中之重:安全问题 · 网络故障排除宝典 · Windows Server 2008专.. |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · 无线网状网(MESH) · Windows远程桌面应用 · C#技术开发指南 |
· Apache技术专题 · Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 解析35岁技术人的价值.. |
|||