使用 class 关键字声明类,如以下示例所示:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
C# 仅支持单个继承。 换句话说,类只能从一个基类继承实现。 但是,类可以实现多个接口。
C# 语言参考记录了 C# 语言的最新发布版本。 它还包含即将发布的语言版本公共预览版中功能的初始文档。
本文档标识了在语言的最后三个版本或当前公共预览版中首次引入的任何功能。
小窍门
若要查找 C# 中首次引入功能时,请参阅 有关 C# 语言版本历史记录的文章。
有关类、接口和继承的详细信息,请参阅基础知识部分中有关 继承 的文章。
可以直接在命名空间中声明类。 不要将这些类嵌套在其他类中。 你可以使这些类或 publicinternal. 默认情况下,类为 internal.
可以声明类成员,包括嵌套类,如public、、、internalprotected、或privateprivate protected。 protected internal 默认情况下,成员为 private.
有关详细信息,请参阅访问修饰符。
可以声明具有类型参数的泛型类。 有关详细信息,请参阅 泛型类。
类可以包含以下成员的声明:
示例:
以下示例演示如何声明类字段、构造函数和方法。 它还演示了对象实例化和打印实例数据。 在此示例中,声明了两个类。 第一个类 Child包含两个私有字段(name 和 age)、两个公共构造函数和一个公共方法。 第二类 StringTest包含 Main。
class Child
{
private int age;
private string name;
// Default constructor:
public Child()
{
name = "N/A";
}
// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}
// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}
class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);
// Create an object using the default constructor:
Child child3 = new Child();
// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
注释
只能通过类的公共方法Child访问专用字段(name和age)。 例如,无法使用如下所示的语句从 Main 方法打印子名称:
Console.Write(child1.name); // Error
仅当是类的成员时Main,才能访问其Main私有Child成员。 不带访问修饰符的类中声明的类型默认 private为 ,因此,如果删除了关键字,则此示例中的数据成员仍会 private 保留。 最后,对于使用无参数构造函数child3()创建的对象, age 字段默认初始化为零。
C# 语言规范
有关详细信息,请参阅 C# 语言规范。 语言规范是 C# 语法和用法的明确来源。