C#高级编程(第七版)的一些简单记录

C#高级编程(第七版)的一些简单记录

第3章:对象与类型

函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和终结器钽血扬㈤、运
算符以及索引器。
● 方法是与某个类相关的函数,与数据成员一样,函数成员默认为实例成员,使用盹吮修饰
符可以把方法定义为静态方法。
● 属性是可以从客户端访问的函数组,其访问方式与访问类的公共字段类似。唧为读写类中
的属性提供了专用语法,所以不必使用那些名称中嵌有Get或 set的方法。因为属性的这种
语法不同于一般函数的语法,在客户端代码中,虚拟的对象被当做实际的东西。
· 构造函数是在实例化对象时自动调用的特殊函数。它们必须与所属的类同名,且不能有返
回类型。构造函数用于初始化字段的值。
· 终结器类似于构造函数,但是在CLR检测到不再需要某个对象时调用它。它们的名称与类
相同,但前面有一个“~”符号。不可能预测什么时候调用终结器。第 13章将介绍终结器。
● 运算符执行的最简单的操作就是加法和减法。在两个整数相加时,严格地说,就是对整数
使用“十”运算符。C胚允许指定把已有的运算符应用于自己的类(运算符重勃。第7章将
详细论述运算符。
· 索引器允许对象以数组或集合的方式进行索引。

重载方法的参数方面一些小限制:

● 两个方法不能仅在返回类型上有区别。
● 两个方法不能仅根据参数是声明为ref还是out来区分。

匿名类型:

var关键字,它用于表示隐式类型化的变量

如果需要一个对象包含某个人的姓氏、中间名和名字,则声明如下:

var captain = new (FirstName = "James"` MiddleName = "T", LastName = "Kirk")`

如果所设置的值来自于另一个对象,就可以简化初始化器。如果已经有一个包含 F“N咖 、
M血妃Nm⒑ 和LastName属性的类,且有该类的一个实例ωerson,,叨昨血对象就可以初始化为:

var captain = neW (person.FirstName,person.MiddleName,person.LastName)氵

person对象的属性名应投射到新对象名叨u血。所以c叩切血对象应有F“tNalne、 MddleName
和LastName属性。

这些新对象的类型名未知。编译器为类型
们不能也不应使用新对象上的任何类型反射,“伪造”了一个名称,但只有编译器才能使用它。我们不能也不应使用新对象上的任何类型反射,因为这不会得到一致的结果。

 

 

posted @ 2014-01-18 14:06  泥称  阅读(245)  评论(0)    收藏  举报