- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 引用形参 * static void Swap(ref int x, ref int y) { int temp; temp = x; x = y; y = temp; } ref 修饰符声明的参数为引用参数 调用:Swap( ref i , ref j ); 方法调用必须显式使用ref关键字 实参必须是变量 实参必须为与形参类型相同的变量,且在作为引用形参传递之前,必须先明确赋值 引用形参并不创建新的存储位置,其存储位置就是方法调用中实参变量的存储位置 * 两种传参方式的比较 值调用方法 Swap(i, j); 调用前 i=1 j=2 调用后 x=1 y=2 调用 i=1 j=2 x=2 y=1 值调用方法 Swap(ref i, ref j); 调用前 i=1 j=2 调用后 调用 i=2 j=1 x=1 y=2 x=2 y=1 i j * 3.输出形参 用 out 修饰符声明的形参是输出形参 输出形参的存储位置就是实参的存储位置。 方法调用中的对应实参必须为与形参类型相同的变量 方法定义和调用都必须显式使用out关键字 Out参数只能用于从方法中传出值,不能接受实参值(与ref的区别) Out参数在方法结束前必须赋值 * 4.形参数组 用 params 修饰符声明的形参是形参数组,允许向方法传递可变数量的实参 形参数组必须位于该列表的最后 必须是一维数组类型。例如,类型 string[] 和 string[][] 可用作形参数组的类型,但是类型 string[,] 不能 params 修饰符不能与 ref 和 out 修饰符组合起来使用 * 方法的参数 参数有三个关键字前缀:ref、out、params。 Ref:按引用传递。传递前必须初始化。 Out:按引用传递。传递前不初始化,在方法内部初始化。 Params:参数数量可变化。在方法内部检查参数。 多用于需要参数个数可变的情况下。 * * 属性 索引器 方法的参数 小结 基本内容 * * * * * * * * * * * * * * * * * * * 第3章 C#面向对象编程 * 属性 索引器 方法的参数 小结 基本内容 * 本节目标 理解面向对象的基本概念 理解类和对象的区别和联系 掌握属性的使用 区别只读属性和可读写属性 掌握方法的声明和使用 数据安全 * static void Main(string[] args) { Student myStudent = new Student(); myStudent.age = -2; myStudent.id = 123456; } 非法数据 身份证号不能被修改 无法获得数据 无法正常赋值 有时候将类中的字段公开是不安全的 如果设为私有成员 能否对这些字段进行规则约束或者只读呢? 什么是属性(property) C#不直接访问类的数据 通过访问器访问(get,set) * class Student { // 姓名 private string name; public string Name { get { return name; } set { name = value; } } } 返回name get用于获取相应字段的值 set用于设置字段的值 只有get时:只读属性 只有set时:只写属性 get和set都存在:读写属性 属性的类型和字段类型必须一致。 给name赋值 [属性修饰符] 类型 属性名 { get {return 字段名;} set {字段名 = value;} } 属性的特点 * private int age; //年龄 public int Age { get { return age; } set { if (value 0 value 100) { age = value; } else { age = 18; } } } 控制私有字段的可访问性 保护内部数据的安全 建议类内部敏感字段使用 属性来控
文档评论(0)