文档介绍:C# 基础知识点 1. 面向对象先是将对象抽出来,构造成一个仿真的环境,然后在这个环境里,把与最终要解决的问题间建立一个方法。封装就是用一个框架把数据和代码组合在一起,形成一个对象。遵循面向对象数据抽象的要求,一般数据都被封装起来,也就是外部不能直接访问对象的数据,外部能见到的只有提供给外面访问的公共操作( 也称接口,对象之间联系的渠道)。在 C#中,类是支持对象封装的工具,对象则是封装的基本单元。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或者子类,而被继承的类则称为基类、超类或父类。多态也是面向对象语言的基本特征之一,是指在程序执行之前无法根据函数名和参数确定调用哪一个操作,而是程序执行过程中,根据实际运行情况动态确定,从而带来编程高度的灵活性。实现多态的方法是使用虚方法。 Virtual 2. 值类型和引用类型值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等。栈是操作系统分配的一个连续的内存区域,用于快速访问数据。因为值类型的容量是已知的,因此它可存储在栈上。而托管堆是 CLR 在应用程序启动时为应用程序预留的一块连续内存区,是用于动态内存分配的内存区,引用类型的容量只有到运行时才能确定,所有用堆来存储引用类型。 关键字作为运算符可以创建对象和调用构造函数; 例: Class_Test MyClass =new Class_Test(); 例: int myInt =new int(); 作为修饰符可以用于向基类成员隐藏继承成员,实现派生类中隐藏基类的 virtual 方法,不能和 override 共存; 作为约束可以在泛型声明中约束可能用作类型参数的参数类型。 framework 定义的最基本的集合类型。集合类: ArrayList :使用大小可按需动态增加的数组实现 IList 接口。 BitArray :管理值的压缩数组,该值表示为布尔值, true 表示位是打开的(1), false 表示位是关闭的( 0)。 parer :比较两个对象是否相等,比较时忽略字符串的大小写。 CollectionBase :为强类型集合提供 abstract 基类。 Comparer :比较两个对象是否相等,其中字符串比较是区分大小写的。 DictionaryBase :为键/值对的强类型集合提供 abstract 基类 Hashtable :表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。 Queue :表示对象的先进先出集合 ReadOnlyCollectionBase :为强类型非泛型只读集合提供 abstract 基类。 SortedList :表示键/ 值对的集合,这些键值对按键排序并可按照键和索引访问。 Stack :表示对象的简单的后进先出非泛型集合。 5. C# 运算符( is/ as) 1、类型检查的效率不一样: is需要做两次对象的类型检查,而as需要做一次对象类型检查,再加一次 nul l 的检查。 2、is的检查规律: A: 检查一个对象是否兼容于其他指定的类型, 并返回一个 Bool 值, 如果是目标类型或是其父类型的话就返回为 true ,否为 false 。永远不会抛出异常 B:如果对象引用为 null ,则返回为 false ,因为没有对象可以检查其类型。 3、as的检查规律: A:检查对象类型的兼容性,并返回转换结果,如果不兼容则返回 null ; B:不会抛出异常; C:如果结果判断为空,则强制执行类型转换将抛出 NullReferenceExceptio n 异常; D:用as来进行类型转换的时候,必须是目标类型或者转换目标类型的派生类 4、as 运算符只执行引用转换和装箱转换; is 运算符只考虑引用转换、装箱转换和取消装箱转换。 5、使用 as操作符有如下几点限制 A:不用在类型之间进行类型转化 B:不能应用在值类型数据 # 的特点简洁的语法、面向对象设计、与 Web 的紧密结合、完整的安全性与错误处理、版本处理技术、灵活性与兼容性。 7. C# 有几种声明关键字? public , 字段、属性和方法均为公开的,不仅类中的其它成员能访问到,还可以通过类的实例访问的到。 private , 字段、属性和方法均为私有的,只能被类中的其它成员访问到,不能通过类的实例访问。 protected , 包含 private 特性,而且 protected 修饰的字段、属性和方法能被子类访问到。 internal , 在同一个程序集中和 public 一样, 但是不能被其它程序集访问, 而且子类的话,只能被同一个命名空间的子类访问到