【C#】字段

C# 类具有哪些成员?

字段

1.什么是字段

  • 字段(field)是一种表示与对象或类型(类与结构体)关联的变量
  • 字段是类型的成员,旧称“成员变量”
  • 与对象关联的字段亦称“实例字段”
  • 与类型关联的字段称为“静态字段”,由static修饰

通过一个代码来详细了解实例字段与静态字段的功能。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DateMemberExample
{internal class Program{static void Main(string[] args){List<Student>stuList= new List<Student>(); //创建一个新的空列表for (int i = 0; i < 100; i++)// 循环100次{Student stu = new Student();// 创建一个新的Student对象stu.Age = 24;stu.Score = i;stuList.Add(stu);// 将新创建的Student对象添加到stuList中}//计算总年龄和总分数,并根据学生总数计算平均年龄和平均分数。int totalAge = 0;int totalScore = 0;foreach (Student stu in stuList){totalAge += stu.Age;totalScore += stu.Score;}Student.AverageAge = totalAge/Student.Amount;Student.AverageScore = totalScore/Student.Amount;Student.ReportAmount();Student.ReportAverageAge ();Student.ReportAverageScore();Console.ReadLine();}}class Student{public int Age;public int Score;public static int AverageAge;public static int AverageScore;public static int Amount;public Student()    //每次实例被创建时,Amount加1{Student.Amount++;}public static void ReportAmount(){Console.WriteLine(Student.Amount);}public static void ReportAverageAge(){Console.WriteLine(Student.AverageAge);}public static void ReportAverageScore(){Console.WriteLine(Student.AverageScore);}}
}

代码分析:

  • 定义了两个实例字段:AgeScore
  • 定义了三个静态字段:AverageAgeAverageScoreAmount
  • 定义了一个无参数构造函数,每次创建新的Student实例时,Amount字段递增。
  • 定义了三个静态方法:ReportAmountReportAverageAgeReportAverageScore,分别用于报告学生总数、平均年龄和平均分数。


2.字段的声明

  • 尽管字段声明带有分号,但它不是语句
  • 字段的名字一定是名词

最常用的声明字段的格式是:访问级别+数据类型+变量名   或者  访问级别+ static + 数据类型+变量名。如上面的代码中:

public int Age;//最好初始化

public static int AverageAge;


3.字段的初始值

  • 无显式初始化时,字段获得其类型的默认值,所以字段“永远都不会未被初始化”
  • 实例字段初始化的时机 -- 对象创建时
  • 静态字段初始化的时机 -- 类型第一次被加载(load)时

在C#中,静态构造器主要用于初始化类的静态字段,并且在整个应用程序的生命周期中只执行一次。如上面的代码中;

static Student()    //静态构造器:对静态字段初始化,且只执行一次
{
    Student.Amount = 100;
}

//与以下的代码得到的结果一样

public Student()    //构造函数(实例构造器):每次实例被创建时,Amount加1
{
    this.Age = 0;//忽略该代码,最好在声明字段时就赋予初始值
    Student.Amount++;
}

注意:创建实例只读字段,只有在创建实例时有一次修改的机会

using System;class Student
{public readonly int ID; // 声明只读字段,不能修改// 构造函数public Student(int id){ID = id; // 在创建实例时,可以有一次机会设定ID}public void DisplayID(){Console.WriteLine("Student ID: " + ID);}
}class Program
{static void Main(){Student stu1 = new Student(1); // 在创建实例时这样写stu1.DisplayID(); // 则实例stu1的ID是1// 下面的代码会导致编译错误,因为ID是readonly的// stu1.ID = 2; // 错误!}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415303.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9行代码开发一个基于ollama的私有化RAG

前言 OpenAI&#xff08;LLM Embedding&#xff09;是使用LiteLLM ollama模拟&#xff0c;具体做法如下&#xff0c; Llamaindex OpenAI LLM 模型默认使用的是gpt-3.5-turbo&#xff0c; embedding 模型默认使用的是text-embedding-ada-002&#xff0c; 所以这里使用litell…

40天的八股文总结

四十天前报名参加了卡哥的八股文训练营&#xff0c;在这四十天中每周都在训练营中打卡&#xff0c;可以通过念出来的方式进行八股文的记忆&#xff0c;同时还可以听到其他训练营中的朋友们的打卡&#xff0c;这让人感觉非常的有动力&#xff0c;每天都有更强烈的记忆八股文的信…

JAVA智能引领乐享同城城市向导达人系统小程序源码

智能引领&#xff0c;乐享同城 —— 城市向导达人系统 &#x1f680;【开篇&#xff1a;智能时代的同城新体验】&#x1f680; 在这个日新月异的智能时代&#xff0c;我们的城市生活也在悄然发生着变化。你是否厌倦了千篇一律的出行路线&#xff1f;是否渴望在繁忙的都市中找…

网络-多路io

了 fcntl 函数来操作文件描述符的状态标志&#xff0c;其中主要是为了设置非阻塞模式。下面是对 fcntl 函数及其参数的详细解释&#xff1a; fcntl 函数 fcntl 是一个用于操作文件描述符的系统调用&#xff0c;可以用来设置或获取文件描述符的各种属性。其原型如下&#xff1…

kubeadm部署 Kubernetes(k8s) 高可用集群【V1.20 】

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 calico.yaml kubernertes-dashboard.yaml 1. 安装要求 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 7台机器&#xff0c;操作系统Openeuler22.03 LTS SP4硬件配置&#…

通义千问AI PPT初体验:一句话、万字文档、长文本一键生成PPT!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

笔记:《利用Python进行数据分析》之透视表和交叉表

透视表和交叉表 透视表&#xff08;pivot table&#xff09;是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合&#xff0c;并根据行和列上的分组键将数据分配到各个矩形区域中。在Python和pandas中&#xff0c;可以通过本章所…

黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测

黑悟空&#xff01;一区预定&#xff01;原创首发&#xff01;SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测 目录 黑悟空&#xff01;一区预定&#xff01;原创首发&#xff01;SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序…

前缀和专题——一维模版+二维模版力扣实战应用

目录 1、模版 1.1【模版】一维前缀和 1.1.1 算法思想 1.1.2 算法代码 1.2【模版】二维前缀和 1.2.1 算法思想 1.2.2 算法代码 2、算法应用【leetcode】 2.1 题一&#xff1a;寻找数组的中心下标 2.1.1 算法思想 2.1.2 算法代码 2.2 题二&#xff1a;除自身以外数组…

聚观早报 | 理想汽车OTA 6.2发布;京东大幅上调校招薪资

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 9月3日消息 理想汽车OTA 6.2发布 京东大幅上调校招薪资 哪吒汽车8月销量持续破万 C919国产大飞机首航在即 现代…

怎么找TikTok代运营助力?灵感魔方怎么样?

在当今全球化的浪潮中&#xff0c;海外版抖音已然成为了品牌出海的重要阵地。然而&#xff0c;面对这个充满机遇与挑战的平台&#xff0c;如何找到专业的TikTok代运营团队来助力品牌成功出海呢&#xff1f;以下是一些关键的考量因素和方法。 首先&#xff0c;专业的TikTok代运…

【机器学习】图像处理与深度学习利器:OpenCV实战攻略全面解析

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 前言 OpenCV想必大家都听过跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而…

巴黎奥运会引发体育健身热潮:气膜体育馆成为新宠—轻空间

随着巴黎奥运会的成功举办&#xff0c;全球范围内掀起了一股体育健身的热潮。各地的健身场所迎来了前所未有的参与热情&#xff0c;其中&#xff0c;融合了体育、娱乐、休闲等多种业态的综合气膜体育馆因其独特的优势&#xff0c;迅速成为群众健身的新宠&#xff0c;成为了大众…

视频搬运的素材网站有哪些?打包好的视频素材在哪找?

探索短视频创作世界时&#xff0c;是不是经常碰到缺乏素材的难题&#xff1f;无需担心&#xff0c;今天我们来聊聊一些能够即刻丰富你视频内容的素材网站。无论是搬运视频还是寻找灵感&#xff0c;这些资源站都将为你的创作锦上添花。特别强调的是&#xff0c;除了国际上的珍贵…

小土堆pytorch

anaconda安装 pip list 可以看有哪些package包 nvidia-smi查看显卡的状态 安装pytorch 检验pytorch是否安装成功&#xff0c;以及是否pytorch是否可以使用gpu。 (1)查看conda版本 conda --version 或 conda -V (2)更新conda&#xff08;将conda自身更新到最新版本&#xff09; …

sqlite数据插入效率

一、程序效率测试 时间相关接口&#xff1a; int gettimeofday(struct timeval*tv, struct timezone *tz); 功能&#xff1a;得到从1970年1月1日0时0分0秒到现在的秒数。<可以利用该函数来计算一个程序的运行时间&#xff0c;只需在程序前后调用该函数&#xff0c;…

计算机网络概述(分组延时、丢失和吞吐量)

目录 分组丢失和延时是怎样发生的&#xff1f; 四种分组延时 节点延时 排队延迟 分组丢失 吞吐量 吞吐量&#xff1a;互联网场景 分组丢失和延时是怎样发生的&#xff1f; 在路由器缓冲区的分组队列 分组到达链路的速率超过了链路输出的能力分组等待排队到队头、被传输…

基于.NET6的WPF基础总结(上)

目录 一.常用属性介绍 二、 程序退出方式 三、布局样式 3.1 Panel的附加属性ZIndex 3.2 Grid(网格)布局 3.3 UniformGrid&#xff08;均分布局&#xff09; 3.4 StackPanel&#xff08;堆积面板&#xff09; 3.5 WrapPanel&#xff08;换行面板&#xff09; 3.6 Doc…

什么是I2C总线?

1.什么是I2C&#xff1f; 1.1 I2C的由来 在电视机内部电路中&#xff0c;众多功能需要用到许多集成电路IC来实现&#xff0c;包括主控器件微控制器和众多外围设备器件。这些器件相互之间要传递数据信息&#xff0c;那么就需要用导线相互连接&#xff0c;如此众多IC器件的互连&…

linux下cpu多核运行程序以及运行时间统计

一、多核心运行程序 在linux下我们可以指定线程或者进程运行在指定的cpu核心上&#xff0c;操作方法如下&#xff1a; 1&#xff09;运行进程指定cpu核心 taskset -c 2 ./app //-c指定运行的cpu核心号&#xff0c;从0计数&#xff0c;查看效果如下&#xff1a; 2&#xff09…