静态字段表示类的状态,不表示具体对象的状态,通常用public关键字使其可以外部访问来改变。
举一个特别好的例子如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataMemberExample
{
class Program
{
static void Main(string[] args)
{
/* Student stu1 = new Student();
stu1.Age = 40;
stu1.Score = 90;
Student stu2 = new Student();
stu2.Age = 24;
stu2.Score = 60;
Student.ReportAmount();
*/
List<Student> stulist = new List<Student>();
for (int i = 0; i < 100; i++)
{
Student stu = new Student();
stu.Age = 24;
stu.Score = i;
stulist.Add(stu); //注意此处写法
}
int totalAge = 0;
int totalScore = 0;
foreach (var stu in stulist)
{
totalAge += stu.Age;
totalScore += stu.Score;
}
Student.AvargeAge = totalAge / Student.Amount;
Student.AvargeScore = totalScore / Student.Amount;
Student.ReportAmount();
Student.ReportAverage();
Student.ReportAverageScore();
}
}
class Student
{
public int Age;
public int Score;
public static int AvargeAge; //静态字段表示学生这个类型的状态,不表示具体对象的状态 public 是为了外部可以访问
public static int AvargeScore;
public static int Amount;
//构造函数
public Student()
{
Student.Amount++;
}
public static void ReportAmount()
{
Console.WriteLine(Student.Amount);
}
public static void ReportAverage()
{
Console.WriteLine(Student.AvargeAge);
}
public static void ReportAverageScore()
{
Console.WriteLine(Student.AvargeScore);
}
}
}