接口:

接口可以包含方法、属性、事件、索引器或这四种成员类型的任意组合。 接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型。当类或结构实现接口时,类或结构必须为该接口定义的所有成员提供实现。 

继承关系:类或结构可以实现多个接口,但是类只能继承单个类(抽象或不抽象)

 

类:

所有方法、字段、常量、属性和事件都必须在类型内部进行声明;这些称为类型的“成员”。  与其他一些语言不同的是,C# 中没有全局变量或方法。  即使是作为程序入口点的 Main 方法也必须在类或结构内部进行声明。  下表列出了可在类或结构中声明的所有不同种类的成员。 

字段、常量、属性、方法、构造函数、析构函数、事件、索引器、运算符、嵌套类型

有些方法和属性要供类或结构外部的代码(称为“客户端代码”)调用或访问。  另有一些方法和属性可能仅供类或结构在自身内部使用。  应限制您的代码的可访问性,只允许应当访问它们的客户端代码进行访问,这一点十分重要。  使用访问修饰符 public、protected、internal、protected internal 和 private 可以指定类型及其成员对于客户端代码的可访问性。  默认可访问性为 private。

 

泛型类型:

可以使用一个或多个类型参数来定义类和结构。  客户端代码在创建类型的实例时提供类型。  例如,System.Collections.Generic 命名空间中的 List<T> 类使用一个类型参数进行定义。  客户端代码创建 List<string> 或 List<int> 的实例来指定列表中将包含的类型。  有关详细信息,请参阅 泛型(C# 编程指南)。 

 

静态类型:

可以将类(不是结构)声明为静态。  静态类只能包含静态成员,不能使用 new 关键字进行实例化。  在程序加载时,静态类的一个副本将加载到内存中,可通过类名称访问该类的成员。  类和结构都可以包含静态成员。  有关详细信息,请参阅 静态类和静态类成员(C# 编程指南)。 

 

嵌套类型:

类或结构可以嵌套在其他类或结构中。  有关更多信息,请参见嵌套类型。 

 

分部类型:

可以在一个代码文件中定义类、结构或方法的一部分,而在另一个代码文件中定义另一部分。  有关更多信息,请参见分部类和方法。 

 

对象初始值设定项:

可以实例化和初始化类或结构对象以及对象的集合,无需显式调用其构造函数。  有关更多信息,请参见对象和集合初始值设定项(C# 编程指南)。 

 

匿名类型:

在不方便或没必要创建命名类的情况下,例如当使用无需保留或传递给其他方法的数据结构填充列表时,可以使用匿名类型。  有关更多信息,请参见匿名类型(C# 编程指南)。 

 

扩展方法:

通过创建一个单独的类型,然后将该类型的方法当作原始类型的方法来调用,可以在不必创建派生类的情况下对类进行“扩展”。  有关更多信息,请参见扩展方法(C# 编程指南)。 

 

隐式类型化局部变量:

在类或结构方法中,可以使用隐式类型来指示编译器在编译时确定正确的类型。  有关更多信息,请参见隐式类型的局部变量(C# 编程指南)。