在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有什么不同呢? 让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。 下面我们分四个方面来看看C#静态方法与非静态方法的差异: C#静态方法与非静态方法比较一、 静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占同一块区域。 C#静态方法与非静态方法比较二、 这样,C#静态方法调用时无法判断非静态变量使用的内存地址。所以无法使用。而静态变量的地址对类来说是固定的,故可以使用。 C#静态方法与非静态方法比较三、 C#静态方法与非静态方法比较四、 非静态方法中还可以用: C#静态方法与非静态方法的区别解析旨在诠释C#静态方法的含义。
-------------------------------------------------------------------------------------------------------------- 数据成员可以分静态变量、实例变量两种. 函数成员方法可以主要分为静态方法,实例方法 静态的东西,在构造的时候是在堆中生成,在结束前不会被释放与改变. 静态方法的使用场合一、该方法与任何实例无关。 关于静态方法1、static声明的变量和方法会被放到内存的堆区,即使不调用也会被分配空间,而非static情况只有在使用的时候才被分配空间,使用完就释放掉。 当一个类的成员被声明为static时,它可以在这个类的对象被创建之前且没有任何对象的引用存在时被访问。因此,static成员多数被用于全局目的。可以将方法和变量都声明为static。当载入一个类时,一个又一个static块只执行一次。也就是说一些比较通用在系统中应用的比较广泛的函数,一般是采用静态方法。而不太通用的函数则可以使用非静态方法,因为在系统中使用的不是很多,不象通用函数那么广泛。实例化反而比静态方法更适合一些,它实例化所消耗的资源就可能比静态方法消耗的资源要少一些。所以一般都是根据实际需求来决定是否采用静态方法。 =================================================== 用C#写程序,或者用一门oo语言写程序,你首先应该分清楚什么时候用静态函数,什么时候需要用成员函数。 其次,就静态函数与静态成员的内存消耗、所带来的性能提高,以及由哪些危害,我大致提一下。 最后说说纯粹为了性能,而滥用静态函数的危害。
---------------------------------------------------------------------------------------------------------------
静态方法,静态类,静态成员,静态变量,静态字段都属于静态成员,static声明的变量和方法会被放到内存的堆上,即使不调用也会分配内存空间,而非静态成变量,只有在使用时才会分配内存空间,使用完就释放掉。 当一个类的成员被声明为静态时,该类的成员是在没有被实例化之前或在没有任何对象被引用之前使用;也就是说静态成员不需要去创建一个实例,就可以直接调用,这种静态成员通常适用于全局成员变量,从而不用在广泛调用的时候多次去创建实例,当然使用静态成员也有一些优点和缺点,静态成员,方法等不需要创建实例便可以调用,但破坏了一些属性的封装,使得安全性降低。 静态成员是当程序运行开始,相关类一加载时,就为静态成员在内存的堆上分配内存空间, 而非静态成员也就是实例成员、属性只有当对象被实例的时候才会为这些属性分配内存空间,使用过程中占用的内存会随着实例的创建逐步增加。实例成员通常用于一些不太常用的方法,函数。
------------------------------------------------------------------------
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论