第 4章
1、结构继承自System.ValueType,并支持多个接口的实现。
2、类继承于用户指定的另一个类,也支持多个接口的实现。
3、不仅方法可以 是 virtual,属性也可以定义成虚属性。成员字段和静态方法不能申明为虚的。
第 5章
1、泛型在性能上较优,因为它不需要进行额外的装箱与拆箱操作,在类型上是安全的,不是指定类型的数据无法加入到其中,二进制代码可重用
2、泛型类型可以通过使用default关键字,把null设置为引用类型的默认值 ,把0设置为值类型的默认值。
publiC T GetDooument()
(
T doC= default(T)
1ock (this)
(
doc = docVmentQueue.Dequeue()`
}
return doc;
)
2、泛型中还可以使用约束如
Public class DocumentManage<Tdocument> where Tdocument:Idocument
{}
来指定类必须实现IDocument接口
3、泛型类中的静态成员只能在同一类型中共享,不同类型不能共享,比如:
staticDemo<string>.x = 4`
staticDemo<int>. x = 5
Console. WriteLine(staticDemo(string).x); // writes 4
4、可空类型不能隐式转换为非可空类型,但反之则可以。注:可空类型是结构类型的数据
5、如果有很多类型都要实现同一功能,可以考虑使用接口加泛型的方法。比如,有很多类需要进行总金额 的计算,则可以 如下考虑。
先定义一个接口,规定进行计算所需要的数据
Public interface Iaccount
{
Decimal Balance{get;}
}
然后定义一个具体的操作方法
Public static decimal Accumulate<Taccount> (Ienumeralber<Taccount> source) where Taccount : Iaccount
{
Decimal sum=0;
Foreach(Taccount a in source)
{
Sum += a.Balance;
}
Return sum;
}
最后,只要需要使用这个方法的类实现了Iaccount 接口就可以了。
6、可以通过实现ICompare接口以实现自定义排序
7、元组可以用于合并不同类型对象。.NET4中定义了8个泛型Tuple和一个静态Tuple类,它们用作元组的工厂。