C#实例化和静态类对象调用对比

 更新时间:2022年04月20日 12:14:24   作者:小5聊基础  
这篇文章主要介绍了C#实例化和静态类对象调用对比,什么时候用实例化对象,什么时候用静态类对象,内存和生命周期又是如何,框架本身的回收机制是什么,下文详细解说需要的小伙伴可以参考一下

前言:

在编程时,什么时候用实例化对象,什么时候用静态类对象,这个值得我们思考,它们之间所占的内存和生命周期又是如何,框架本身的回收机制是什么

1、对比效果

 实例化对象不断调用多少次,都会重新初始化值调用,说明实例化对象的生命周期是调用完成后就结束

静态类对象,静态类下的静态成员会一直占用在内存且只实例化一次,说明静态类成员的生命周期是从调用到程序结束或机制回收

场景使用:

  • 1)静态类或成员:数据库连接字符串,可以定义为静态,调用和获取比较频繁
  • 2)实例化:登录操作,一般登录操作不会太频繁

【小5聊】C#基础之实例化和静态类对象调用对比_生命周期

【小5聊】C#基础之实例化和静态类对象调用对比_c#_02

  • 重新启动对应的IIS站点

在不停的刷新某一个页面时,内存是按规律的0.1MB增加 ,刷新到一定次数后,内存没有明显的增加,甚至是不变,下图的.NET Core Host进程有两个,是指两个站点,且有被外部或内部在调用,否则是不显示状态

【小5聊】C#基础之实例化和静态类对象调用对比_静态类_03

【小5聊】C#基础之实例化和静态类对象调用对比_静态类_04

2、实例化代码

public string init = "实例化:hello";
public bool flag = false;
public int num = 0;
public void Test(string one)
{
    string test = "";

    if (!flag)
    {
        flag = true;

        num += 1;
        test = "【首次输出】" + init + one + num;
    }
    else
    {
        num += 1;
        test = init + one + num;

    }

    LmyLogHelper.Debug(test);
}

3、静态类代码

public static string init = "静态式:hello";
public static bool flag = false;
public static int num = 0;
public static void Test(string one)
{
    string test = "";

    if (!flag)
    {
        flag = true;

        num += 1;
        test = "【首次输出】" + init + one + num;
    }
    else
    {
        num += 1;
        test = init + one + num;

    }

    LmyLogHelper.Debug(test);
}

到此这篇关于C#实例化和静态类对象调用对比的文章就介绍到这了,更多相关C#实例化和静态类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中累加器函数Aggregate用法实例

    C#中累加器函数Aggregate用法实例

    这篇文章主要介绍了C#中累加器函数Aggregate用法,实例分析了C#中累加器的实现与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#读写注册表的思路及代码

    C#读写注册表的思路及代码

    这篇文章主要介绍了C#读写注册表的思路及代码,有需要的朋友可以参考一下
    2013-12-12
  • C#实现提高xml读写速度的方法

    C#实现提高xml读写速度的方法

    这篇文章主要介绍了C#实现提高xml读写速度的方法,并且针对各类文件的读写做了较为细致的分析,非常实用,需要的朋友可以参考下
    2014-11-11
  • c#实现51单片机频率计的代码分享(数字频率计设计)

    c#实现51单片机频率计的代码分享(数字频率计设计)

    c#实现51单片机频率计的代码分享,大家参考使用吧
    2013-12-12
  • C#通过cmd调用7z软件实现压缩和解压文件

    C#通过cmd调用7z软件实现压缩和解压文件

    这篇文章介绍了C#通过cmd调用7z软件实现压缩和解压文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • .net使用cap实现消息异步处理

    .net使用cap实现消息异步处理

    CAP 是一个基于 .NET Standard 的 C# 库,它是一种处理分布式事务的解决方案,同样具有 EventBus 的功能,它具有轻量级、易使用、高性能等特点,本文给大家介绍了.net下使用cap实现消息异步处理,需要的朋友可以参考下
    2024-05-05
  • 利用C#实现HTML模板的循环输出

    利用C#实现HTML模板的循环输出

    模板循环输出 ,是指使用 UI 前端设计的 HTML 模板片断,并结合数据记录进行循环输出的过程,本文将介绍如何中通过 C# 实现操作 HTML 模板的循环输出,文章通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-06-06
  • C#实现组合排列的方法

    C#实现组合排列的方法

    这篇文章主要介绍了C#实现组合排列的方法的相关资料,并附实例代码,需要的朋友可以参考下
    2016-10-10
  • C#选择排序法实例分析

    C#选择排序法实例分析

    这篇文章主要介绍了C#选择排序法,实例分析了C#排序算法的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C# XML文件操作之相机参数保存和读取

    C# XML文件操作之相机参数保存和读取

    XML是可扩展标记语言是一种数据语言,它将数据以一种简单的文本格式存储,可以被人类和几乎任何计算机理解。本文将利用C#实现相机参数读取并保存至XML文件,感兴趣的可以学习一下
    2022-11-11

最新评论