摘要:
【继承和泛型】 在使用子类一般类型参数时,必须在子类级别重复在基类级别规定的任何约束。例如,派生约束: 基类可以定义其签名使用一般类型参数的虚拟方法。在重写它们时,子类必须在方法签名中提供相应的类型: 您可以定义一般接口、一般抽象类,甚至一般抽象方法。这些类型的行为像其他任何一般基类型... 阅读全文
摘要:
【泛型和强制类型转换】 编译器允许您将一般类型参数显式强制转换到其他任何接口,但不能将其转换到类: 但是,您可以使用临时的 Object 变量,将一般类型参数强制转换到其他任何类型: 不用说,这样的显式强制类型转换是危险的,因为如果为取代一般类型参数而使用的类型实参不是派生自您要显式强... 阅读全文
摘要:
【一般约束】 使用 C# 泛型,编译器会将一般代码编译为 IL,而不管客户端将使用什么样的类型实参。因此,一般代码可以尝试使用与客户端使用的特定类型实参不兼容的一般类型参数的方法、属性或成员。这是不可接受的,因为它相当于缺少类型安全。在 C# 中,您需要通知编译器客户端指定的类型必须遵守哪些约束,... 阅读全文
摘要:
【为什么要使用泛型】 通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到更高质量的代码(高性能),因为您可以重用数据处理算法,而无须复制类型特定的代码(可重用)。在概念上,泛型类似于 C++ 模板,但是在实现和功能方面存在明显差异。 考虑... 阅读全文
摘要:
【extern】 extern修饰符用于声明在外部实现的非托管方法。 Theexternkeyword is also used as a method modifier, declaring a method written in unmanaged code. [DllImport("av... 阅读全文
摘要:
【字符图元】1、typeface(字样),即设计风格,如Courier等。2、font(字体),如10磅Courier斜体。3、monspace即为等宽字体,proportional为非等宽字体。4、字体有2种存储格式:位图字体(bitmap font),也要光栅字体(raster font);轮... 阅读全文