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