当前位置: 首页 > news >正文

C#关于静态关键词static详解

Demo代码:

public class HomeController : Controller
{
    private DateTime time1 = DateTime.Now;  // 实例字段
    private static DateTime time2 = DateTime.Now;  // 静态字段

    [HttpGet("index")]
    public async Task Index()
    {
        Console.WriteLine($"now:{DateTime.Now}");
        Console.WriteLine($"time1:{time1}");
        Console.WriteLine($"time2:{time2}");
    }
}

第一次请求结果:

now:2025/2/14 17:00:58
time1:2025/2/14 17:00:57
time2:2025/2/14 17:00:58

第二次请求结果:

now:2025/2/14 17:01:08
time1:2025/2/14 17:01:07
time2:2025/2/14 17:00:58

总结实例字段 time1 的行为:

  • 第一次请求time1 在每次请求时都会重新初始化,因此它的值是第一次请求发生时的时间。假设第一次请求发生时,time1 的值为 2025/2/14 17:00:57

  • 第二次请求time1 作为实例字段,会在每次请求时重新初始化,因此它的值是第二次请求发生时的时间。假设第二次请求发生时,time1 的值为 2025/2/14 17:01:07

总结静态字段 time2 的行为:

  1. 第一次请求time2 在类加载时初始化,值为 2025/2/14 17:00:58,并且第一次请求时打印这个值。
  2. 第二次请求time2 的值保持不变,仍然是类加载时的值 2025/2/14 17:00:58。因为静态字段在类加载后不再改变,所有请求都会使用同一个 time2 值。

总结:

time2 是静态字段,因此在第一次请求和第二次请求中,它的值不变。而 time1 是实例字段,每次请求都会重新初始化,因此它在第二次请求时打印新的时间。

相关文章:

  • vue 文件下载(导出)excel的方法
  • 【Elasticsearch】运行时字段(Runtime Fields)索引时定义运行时字段
  • EtherNetIP转ModbusTCP网关,给风电注入“超级赛亚人”能量
  • flutter ListView 局部刷新
  • 相得益彰,Mendix AI connector 秒连DeepSeek ,实现研发制造域场景
  • 在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档教程
  • Jenkins 新建配置 Freestyle project 任务 六
  • 力扣142题——环形链表II
  • 项目中菜单按照层级展示sql
  • 大疆无人机需要的kml文件如何制作kml导出(大疆KML文件)
  • 【微服务】SpringBoot 整合Redis Stack 构建本地向量数据库相似性查询
  • deepseek的CoT优势、两阶段训练的有效性学习笔记
  • Vulhub靶机 ActiveMQ任意 文件写入(CVE-2016-3088)(渗透测试详解)
  • oracle表分区--范围分区
  • 利用prompt技术结合大模型对目标B/S架构软件系统进行测试
  • 今日AI和商界事件(2025-02-14)
  • LC-搜索二维矩阵II、相交链表、反转链表、回文链表、环形链表、环形链表ll
  • STM32_USART通用同步/异步收发器
  • git bisect 使用二分法查找引入错误的提交
  • 软件工程完整大型课设--《颐养中心系统》 三级项目报告
  • 金融监管总局修订发布《行政处罚办法》,7月1日起施行
  • 马上评|科学谋划“十五五”,坚定不移办好自己的事
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 农业农村部:把住能繁母猪存栏量“总开关”,引导养殖场户优化母猪存栏结构、合理控制产能
  • 浙江官宣:五一假期,没电、没气、没油车辆全部免费拖离高速
  • 京津冀“飘絮之困”如何破解?专家坦言仍面临关键技术瓶颈