类的静态字段

本文通过一个C#代码示例解释了静态字段如何表示类的状态而非对象状态,并展示了如何通过公共静态字段进行外部访问和修改。示例中创建了一个Student类,静态字段AvargeAge和AvargeScore用于存储所有学生的平均年龄和分数,而Amount记录学生数量。程序通过循环生成多个Student对象并计算平均值,最后输出统计结果。

静态字段表示类的状态,不表示具体对象的状态,通常用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);
        }
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值