C# 动态方法和静态方法的区别 (转)

动态方法与静态方法的区别:

1,使用方法上的区别:
动态方法,在使用时需要先创建实例,才能调用实例方法,而静态方法则不需要,直接使用即可。

示例代码如下:
静态方法不需要实例化类就能调用

class ClassA
    {
        public static string MethodB()
        {
            return "Hello World";
        }
    }

用法:
ClassA.MethodB(); //调用方便

动态的方法在使用前,必须先实例化类

class ClassA
    {
        public string MethodB()
        {
            return "Hello World";";
        }
    }

用法:
ClassA A=new ClassA();
A.MethodB();

2,性能上的区别:
静态方法效率要稍微高一些,但是它会常驻内存,占用内存空间,而动态方法在调用完后会自动释放,节省内存空间。

什么情况下使用动态方法,什么情况下使用静态方法:
1,使用静态方法是有好处的,因为静态方法只维护一份拷贝,所以无论你有多少个实例,内存中都只会有一份拷贝。

2,使用频繁的方法用静态方法,比如数据库操作类,我们就是使用静态方法。使用的少的方法用动态的。因为静态的速度快,但占内存,就像是缓存一样,经常用的数据我们应该应该将它们缓存起来。动态方法的调用速度相对慢些,但调用完后,会立即释放类,节省内存。

用户可以根据自己的需要选择是用动态方法还是静态方法。

C# 动态方法和静态方法的区别的更多相关文章

  1. 关于java线程锁synchronized修饰普通方法与静态方法的区别

    最近研究线程方面问题,关于这个synchronized锁修饰的问题,先是修饰普通方法,然后通过两个线程,各自执行自己对象的锁,发现方法执行互不影响,代码如下: private static int n ...

  2. php中普通方法和静态方法的区别以及抽象类和接口

    实例化类产生对象.class fenbi{ //普通成员,属于对象 public $length = "10cm"; //静态成员,静态变量,属于类. public static ...

  3. iOS---类方法(静态方法)和实例方法

    类方法   实例方法是以+开头的方法, 实例方法是用实例对象访问:   类方法的对象是类而不是实例,通常用来创建对象或者工具类.     在实例方法里,根据继承原理发送消息给self和super其实都 ...

  4. Struts 2之动态方法调用,不会的赶紧来

    学习Struts2框架以来为了减少Action 的数量,我们可以使用动态方法进行处理. 动态方法调用(Dynamic Method Invocation,DMI)是指表单元素的Action并不是直接等 ...

  5. Python普通方法、静态方法、类方法

    开始 # -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别 __metaclass__ = type class Tst: name = 'tst' data = 'this ...

  6. jQuery的核心对象、原型对象、静态方法、动态方法

    什么叫jQuery的核心对象? $ $===jQuery 什么叫jQuery的原型对象? $.fn $.fn===$.prototype 什么叫静态方法? 在构造函树上定义的方法,静态方法通过构造函数 ...

  7. python类的实例方法\静态方法\类方法区别解析(附代码)

    前言 搞了好久python,一直搞得不太清楚这几种类的方法,今天花时间好好测试一下,算是弄懂点皮毛吧. 三种方法的不同 先剽窃个图看一下 可以看到,实例是三种方法都可以调用的,而类只可以调用两种.所以 ...

  8. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  9. js中属性和方法的类型和区别

    对象的属性:私有属性(var).类属性(静态属性).对象属性(this).原型属性(prototype). 对象的方法: 私有方法(funtion).类方法(静态方法).对象方法(this).原型方法 ...

随机推荐

  1. Django+JWT实现Token认证

    对外提供API不用django rest framework(DRF)就是旁门左道吗? 基于Token的鉴权机制越来越多的用在了项目中,尤其是对于纯后端只对外提供API没有web页面的项目,例如我们通 ...

  2. 当Elasticsearch遇见Kafka

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由michelmu发表于云+社区专栏 Elasticsearch作为当前主流的全文检索引擎,除了强大的全文检索能力和高扩展性之外,对多种 ...

  3. Haproxy+Heartbeat 高可用集群方案操作记录

    之前详细介绍了haproxy的基础知识点, 下面记录下Haproxy+Heartbeat高可用web集群方案实现过程, 以加深理解. 架构草图如下: 1) 基本环境准备 (centos6.9系统) 1 ...

  4. 获取多个checkbox的选中值

    我在这个div中添加了多个input. 拼接一下呢.最老的方法. jquery获取值: var strSel=""; $("[name='jbbm']:checked&q ...

  5. Modifying namespace in XML document programmatically

    Modifying namespace in XML document programmatically static XElement stripNS(XElement root) { return ...

  6. 今天通过npm 安装 install 的时候出现的问题

    E:\Workspace_WebStorm\angular2>npm install -gC:\Users\lyx\AppData\Roaming\npm`-- angular2@0.0.0 ` ...

  7. 延迟初始化Lazy

    延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求.也可以称为,按需加载. 基本语法: Lazy<T> xx = new Lazy<T>(); ...

  8. Ubuntu16.04安装后开发环境配置和常用软件安装

    Ubuntu16.04安装后1.安装常用软件搜狗输入法+编辑器Atom+浏览器Chome+视频播放器vlc+图像编辑器GIMP Image Editor安装+视频录制软件RcordMyDesktop安 ...

  9. Eclipse SVN 冲突的 介绍 及 四种解决方式

    https://blog.csdn.net/diyu122222/article/details/79879376

  10. csharp: Setting the value of properties reflection

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...