什么是”类”
- 《C#语言规范》定义:类是一种数据结构,它可以包含数据成员(常量和字段)、函数成员(方法、属性、事件、索引器、运算符、实例构造函数、静态构造函数和析构函数)以及嵌套类型。类类型支持继承,继承是一种机制,它使派生类可以对基类进行扩展和专用化。
- 是一种数据结构(data structure)
- 是一种抽象的结果,是一种抽象的载体
- 包含数据成员,函数成员,以及嵌套类型
- 是一种数据类型
- 引用类型,每一个类都有自定义类型,可以声明变量,创建实例,是实例模板
- 代表现实世界中的”种类”
- 是一种数据结构(data structure)
- 类的声明格式:
- 示例: ```csharp using System;
namespace HelloClass { class Program { static void Main(string[] args) { //创建对象 Student stu = new Student(1,”Tim”) ; stu.Report();
//使用反射访问类中的成员
Type t = typeof(Student);
object o = Activator.CreateInstance(t,2,"Tom");
Student stu1 = o as Student;
Console.WriteLine(stu1.Name);
//使用dynamic访问类中的成员
Type t1 = typeof(Student);
dynamic stu2 = Activator.CreateInstance(t1, 3, "Jim");
Console.WriteLine(stu2.Name);
Console.WriteLine(Student.Amount);
}
}
class Student
{
public static int Amount { get; set; }
//静态构造器:初始化静态成员
static Student()
{
Student.Amount = 100;
}
//实例构造器:初始化实例成员
public Student(int id,string name)
{
this.ID = id;
this.Name = name;
Student.Amount++;
}
//析构函数:释放内存,当类用了底层类时,可用析构函数
~Student()
{
Console.WriteLine("Bye bye!Release the system resources...");
Student.Amount--;
}
public int ID { get; set; }
public string Name { get; set; }
public void Report()
{
Console.WriteLine($"I'M #{ID} student,my name is {Name}.");
}
}
} ```