第四章 方法和参数
来源:互联网 发布:淘宝代运营销售好做吗 编辑:程序博客网 时间:2024/05/16 05:17
1、命名空间
命名空间是一种分类机制,用于组合功能相关的所有类型。命名空间支持分级,级数可以任意,例如:Microsoft.Win32.NetWorking。
命名空间主要用于按照功能组织类型,以便更好的理解和查找类型。除此之外,命名空间还有助于防止类型名次冲突。
2、using
2.1 using指令
使用完全限定的命名空间名称太长,使用using指令可以在程序中直接使用命名空间中的类型,例如:
using System
static void main()
{
Console.Write("abc");
}
using指令不会导入任何嵌套命名空间中的类型,嵌套命名空间必须显式的导入。
例如,即使使用using System这样的using指令,也不能在使用System的子命名空间的类型时省略System。例如,代码中要使用System.Text.StringBuilder类型,那么必须再添加一个using System.Text的using指令,而不能写成text.StringBuilder。
2.2 using别名
可以利用using为命名空间或者类型取一个别名。其用途是可以消除两个同名类型的歧义或缩写长类型名。例如,System.Timers和System.Threading两个命名空间下都Timer类型,如果同时引入了这两个命名空间,则Timer类型存在歧义。可以通过using别名的方式消除歧义。
using System.Threading;
using CountDownTimer = System.Timers.Timer;
static void main()
{
CountDownTimer timer;
}
2.3 using语句
通过using语句可以控制资源的生存周期,创建的对象会在using语句结束时被销毁,出了using的作用域后会调用对象的Dispose方法,在Dispose方法内部会自动调用Close方法。
using(TextReader reader = new StreamReader(fileName))
{
... ...
}
3、方法参数
3.1 引用参数(ref)
在形参的前面加上ref,则指定了该形参接收的实参的引用(而不是值类型)。如果被调用的方法参数被指定为ref,那么调用者在调用方法时,要在传递实参的前面加上ref前缀。而且调用者必须在传递实参之前对实参进行初始化。
static void main()
{
int n = 0;
func(ref n);
}
static void func(ref int number)
{
number = number + 1;
}
3.2 输出参数(out)
在形参的前面加上out,则指定了该形参为返回类型,out参数在功能上和使用上和ref几乎一致,唯一的区别是,如果参数标记为out,编译器会核实方法中所有正常返回的代码路径中是否对out参数进行赋值,没有赋值则编译器报错。
out类型参数克服了方法只能返回一个值的限制。
3.3 属性和方法调用不允许作为ref或out参数值使用
ref和out参数值在内部实现时,需要将内存的地址传给目标方法。但是,由于属性可能是虚属性或是只读、只写属性,因此不能传递存储地址。所以,不能将属性作为ref或out参数值传递。同样的道理也适用于方法调用。
3.4 可变长度的参数(params)
在方法声明的最后一个参数之前添加params关键字,并将该参数声明为数组,则该参数可以接收任意长度的数据
static void main()
{
func(1,2,3);
func(1,2,3,4,5,6);
}
static void func(params int[] numbers)
{
... ...
}
4、异常捕获
使用try块将有可以引发异常的代码包围起来,try代码块后紧跟着一个或多个catch代码块,当try代码块中的代码发生异常,则会跳转至与异常对应的catch块汇中
static void main()
{
try
{
int age = int.Parse(System.Console.ReadLine());
}
catch(FormatException )
{
... ...
}
catch(Exception exception)
{
... ...
}
}
如果从控制台获取的字符串无法转换成int类型,int.Parse()会引发System.FormatException类型异常,会执行catch(FormatException)代码块中的代码。
异常处理的顺序非常重要,catch必须按照从具体到最不具体排列。System.Exception是最不具体的数据类型,它是所有异常数据类型的基类,所以它应该出现在异常处理的最后。
在catch代码块可以跟一个finally代码块,如果加了finally代码块,无论是正常离开try,还是异常离开try,finally代码块就一定会执行。即使try代码块中有return语句,finally代码块也会在return之前执行。
- 第四章 方法和参数
- 06 C# 第四章 方法和参数
- 第四章. 变量和参数介绍
- JAVA核心技术 第四章 对象与类 方法参数
- 第四章 URL管理器和实现方法
- 第四章 BIRT数据集和参数的建立
- 第四章 BIRT数据集和参数的建立
- 第四章 BIRT数据集和参数的建立
- 第四章 BIRT数据集和参数的建立
- 第四章:BIRT数据集和参数的建立
- 第四课:方法和事件
- 第四章 方法和数组 Fig 4.1 SquareInt.cs
- JNI编程指南-第四章 字段和方法
- 第四天 :方法和递归,方法重载
- 第四章 BIRT数据集和参数的建立 (续) .
- 第四章 BIRT数据集和参数的建立 (续) .
- 参数方法和非参数方法
- 第四章 模式识别-非参数技术
- 反编译java class并优雅的调试--http://www.blogjava.net/miaoyachun/archive/2013/02/22/395575.html
- HDU1095
- 在linux下安装CLion激活方法
- 顺序表基础操作--练习
- execute、executeQuery和executeUpdate之间的区别
- 第四章 方法和参数
- Spring Boot Security 学习笔记-根据登陆人动态配置权限-密码加密验证
- 【modelsim】vsim 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
- AndroidStudio一直build
- Excel默认将表格归纳到同一窗口中如何将标签划分为窗口
- angular js factory服务
- 自动化测试中TestNG的使用
- CocosCreator protobufjs搭建
- C语言在线教程