有志者、事竟成,破釜沉舟,百百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

拂晓犬吠

学习中遇到困难是很正常的事情,不要苦恼,不要气馁,恰恰相反,应该兴奋,因为又学到知识了,需要不断提高自己应对问题和解决问题的能力和信心。

摘要: C#3.0新增了对象初始化器,用于初始化对象中所有可以访问的字段和属性。 具体地说,调用构造函数创建对象时,可在后面的一对大括号中添加成员初始化列表。 这样在创建对象时指定必要的数据,又提供了一种方式。 但不得不说,这都是表面上编码的工作。对象初始化器,只是一个语法糖。最终生成的CIL代码和创建对象 阅读全文
posted @ 2019-12-04 16:54 ID拂晓犬吠 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 之前,对new操作符有过或多或少的描述。 new操作符返回,对实例化好的对象的一个引用。 这样,我认为有参数的构造函数完成了前几篇记录的初衷,保证了数据的有效性。 注意 既在声明中又在构造函数中赋值的情况。最终生效的是构造函数内部的赋值,它会覆盖声明时的赋值。 如果不细心,很容易就会以为对象实例化后 阅读全文
posted @ 2019-12-04 16:07 ID拂晓犬吠 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 上次说到考虑数据的有效性,提供一种方式在创建对象时指定必要的数据。就是使用构造函数。 如果类没有显式定义的构造函数,C#编译器会在编译时自动添加一个。 但这个构造函数不获取参数,称为默认构造函数。仍就是没有无效数据的对象。 阅读全文
posted @ 2019-12-04 15:43 ID拂晓犬吠 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 只记录回忆点 现在已为类添加了用于存储数据的字段,接着应考虑数据的有效性。可用new操作符实例化对象,但这一可能创建包含无效数据的员工对象。 实例化一个对象后立即对尚未初始化的字段进行赋值,但假如忘了初始化,编译器也不会发出警告。 为了解决可能忘记的问题,于是出现了构造函数; 必须提供一种方式在创建 阅读全文
posted @ 2019-12-04 15:32 ID拂晓犬吠 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 只记录回忆点 如果为LastName赋了无效的值,代码就会抛出异常。拦截赋值,并通过字段风格的API对参数进行验证,这是属性的优点之一。 一个好的实践是从属性的实现中访问属性的支持字段。换言之,要一直使用属性,不要直接调用字段。 可移除属性的取值方法或赋值方法来改变属性的可访问性。 只有赋值方法的属 阅读全文
posted @ 2019-12-04 11:54 ID拂晓犬吠 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 只记录回忆点 自动实现的属性 从C#3.0起属性语法有了简化版本。 在属性中声明支持字段,并用取值方法和赋值方法来获取和设置该字段。由于这是十分常见的设计,而且代码比较琐碎; 所以,现在允许在声明属性时不添加取值或赋值方法,也不声明任何支持字段。 一切都自动实现。简化了写法,也使代码更易读。 此外, 阅读全文
posted @ 2019-12-04 10:23 ID拂晓犬吠 阅读(406) 评论(0) 推荐(0) 编辑