zoukankan      html  css  js  c++  java
  • c#中的static

    概述

    像在VB。C#,C。C++,Java中我们能够看到static作为keyword和函数出现,在其它的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的。仅仅是有着不同的作用,对于其详细作用,读者有须要的时候是能够详细查阅的。

    理解

    statickeyword的确是面向过程开发的时代就有的keyword,可是并不代表是面向对象开发中就应该尽量避免statickeyword。

    静态类跟非静态类效果肯定是不一样的,差别肯定是有的。

    static类一般用于与状态无关的类。那么,什么是与状态无关的类?我的理解是当一个类中没有属性,仅仅有方法的的时候。就能够觉得这个类是与状态无关的类。回忆非静态类实例化一个对象,目的在什么地方?目的就是通过这个实例化的对象来保存类的状态。


    不是吗?比如

    A a = new A();
    a.Name = "Kevin";
    a.Sex = "男";
    ......

    通过我们实例化的对象a,类的状态被对象a保持住了。


    假设我们的类没有属性,全是方法,那么。有必要为了调用类中的方法,先实例化一个对象出来吗?
    因此,笔者建议。在做类的设计的时候。假设类是与状态无关的类,建议将其设计为static类。
    至于说这样做的意义:首先,省略了构造一个对象的性能损耗,尽管能够忽略不计。其次,对程序猿比較友好,调用类的方法更加的方便。

    总结

    仅仅要一个类是与状态类无关的类。那么将其设计成静态类是没有问题的。


  • 相关阅读:
    线段树模板题 contest 线段树 T5
    Guide AHOI2017 洛谷P3720
    静态RMQ模板题 contest 静态RMQ T2
    树状数组模板题 P1904
    AC自动机模板题 P2017
    高精度排序模板题 P1110
    Trie树模板题 P2016
    树状数组套权值线段树
    爬山 启发式合并 / STL
    [POI2011]ROT-Tree Rotations 线段树合并|主席树 / 逆序对
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6927615.html
Copyright © 2011-2022 走看看