代码如下
namespace static字段
{
internal class Program
{
static void Main(string[] args)
{
List<Student> stuList = new List<Student>();
for (int i = 0; i < 100; i++)
{
Student stu = new Student(i);
stu.Age = 24;
stu.Score = i;
stuList.Add(stu);
}
int scoreSum = 0;
int ageSum = 0;
foreach (var stu in stuList)
{
scoreSum += stu.Score;
ageSum += stu.Age;
}
Student.AverageAge = ageSum / Student.Amount;
Student.AverageScore = scoreSum / Student.Amount;
Student.ReportAmount();
Student.ReportAverage();
Student.ReportAverageScore();
Console.WriteLine(stuList[99].ID);
Console.WriteLine(Student.size2d.school);
}
}
struct Size2D
{
public string school;
public string area;
}
class Student
{
public int Age;
public int Score;
public static int Amount;
public static int AverageAge;
public static int AverageScore;
public readonly int ID;
public static readonly Size2D size2d;
static Student()
{
Student.size2d = new Size2D() { school = "Foreign Lanuage School", area = "DongShan" };
}
public Student(int ID)
{
Student.Amount++;
this.ID = ID;
}
public static void ReportAverage()
{
Console.WriteLine(AverageAge);
}
public static void ReportAverageScore()
{
Console.WriteLine(AverageScore);
}
public static void ReportAmount()
{
Console.WriteLine(Student.Amount);
}
}
}
运行结果

什么是字段?
1. 字段(field)是一种表示与对象或类型(类与结构体)关联的变量
2. 【字段】是类型的成员,旧称“成员变量”
3. 与对象关联的字段亦称“实例字段”
4. 与类型关联的字段称为“静态字段”,由static修饰
字段的初始值?
1. 无显式初始化时,字段获得其类型的默认值,所以字段“永远都不会未被初始化”
2. 实例字段初始化的时机--对象创建时
3. 静态字段初始化的时机--类型被加载(load)时