静态类

在类(class)上加入static修饰,表示该类无法被实例化,并将该类中,无法实例化变量或函数

静态类的主要特性

  • 仅包含静态成员
  • 无法实例化
  • 静态类的本质,时一个抽象的密封类,所以不能被继承
  • 不能包含实例构造函数
  • 如果一个类下面的所以成员都需要被共享,那么此类可以定义为静态类

所以,可以在普通类中添加静态方法,但是静态类中的方法、变量都必须是静态的。

c#静态方法与非静态方法比较

一、静态方法:使用static修改的方法就是静态方法,否则就是非静态方法。

二、

(1)静态成员属于类的所以,非静态成员属于类的实例所以。

(2)每创建一个类的实例,都会在内存中为非静态成员新分配一块存储

总结:静态成员属于类所以,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占一块存储。

三、

(1)c#静态方法属于类所以,类实例化前即可使用

(2)非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员

(3)因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存。这样的话C#静态方法调用时无法判断非静态变量使用的内存地址,所以静态方法所以无法使用非静态变量,但静态变量地址对类来说是固定的,所以静态方法可以使用静态变量。

(4)C#静态方法是一种特殊的成员方法,它不属于类的某一个具体实例,而是属于类本身。所以对于静态方法不需要首先创建一个类的实例,而是采用    类名.静态方法   的格式。

1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!

2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.

4.C#中的方法有两种:实例方法,静态方法.

四、
C#静态方法中获取类的名称
静态方法中用:
string className =   System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName;

非静态方法中还可以用:
string className = this.GetType().FullName;

C#静态方法与非静态方法的区别解析旨在诠释C#静态方法的含义,希望对你了解和学习C#静态方法与非静态方法有所帮助。

转载于:https://www.cnblogs.com/studydp/p/9027085.html

C#静态类 静态方法与非静态方法比较相关推荐

  1. php静态类 使用场景,【php】PHP静态方法和非静态方法的使用场景

    单纯的语法上是没有什么问题的 但对静态方法和非静态方法的使用场景 什么情况下该用什么希望大家能讲解下 我现在的使用情况是: 基本上都是实例方法, 除了单例, 工厂, 几个设计模式时使用! 其他的时机完 ...

  2. 静态方法和非静态方法的区别JAVA

    最近在写JAVA程序的时候报了一个错. No enclosing instance of type FileRead is accessible. Must qualify the allocatio ...

  3. java中synchronized修饰静态方法和非静态方法有什么区别?

    Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称"对象锁". Java中每个对象都有一个锁,并且是唯一的.假设分 ...

  4. 使用synchronized修饰静态方法和非静态方法有什么区别

    前言 最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录.供大家学习参考. Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法 ...

  5. java静态方法 问题_Java中堆、栈,静态方法和非静态方法的速度问题

    一.堆和栈的速度性能分析 堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆 ...

  6. php中静态方法有什么作用,PHP中的静态方法与非静态方法有什么不同吗?

    除此之外,如果您尝试在您的方法中使用$this,如下所示: class t { protected $a = 10; public function tt() { echo $this->a; ...

  7. php中静态方法的调用,php中静态方法和非静态方法如何相互调用?

    php中静态方法和非静态方法如何相互调用?2020-09-01 00:05:28 php中静态方法和非静态方法相互调用的方法:1.非静态方法调用静态方法: 可以[self]或者类名加[::]的形式调用 ...

  8. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

  9. php 静态方法特点,浅析php静态方法与非静态方法的用法区别

    在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法" 如果访问控制 ...

最新文章

  1. 2009全国公共英语五级(PETS-5)考试大纲概述
  2. Linux查看系统开机时间(转)
  3. keil5图标变成白色_keil5菜单栏图标错乱怎么办? keil5菜单栏快捷图标错位的解决办法...
  4. java分别使用for循环语句计算n!_实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式...
  5. gson json转map_Java几种常用JSON库性能比较
  6. Dnslog在SQL注入中的利用
  7. Andrew Ng教你如何引领公司进入AI时代
  8. 如何设置允许PP视频访问相机
  9. RISC-V 没你想象的那么好
  10. 面试宝典系列-Mysql索引的区别
  11. java recordset_连接数据库返回recordset
  12. 人脸检测(十)--强分类器源码分析
  13. Windows下配置网络管理软件--MRTG
  14. opencv提取图像的缺陷并用最小矩形框出来
  15. iconfont阿里矢量图标库的引入与使用
  16. 数码视讯Q1、Q5机顶盒线刷固件
  17. 国内外优秀的计算机视觉团队汇总
  18. iOS开发 适配iPhone XS Max/iPhone XR
  19. 昌航程序设计竞赛初赛(周五晚19点)
  20. ftp免费空间,1种适合小白级别的搭建ftp免费空间的方法

热门文章

  1. 美国光伏发电市场是否稳定?电池板价格降至40美分/W!
  2. 移动端touchstart、touchmove事件的基本使用
  3. python命令行添加Tab键自动补全
  4. python 导入 包
  5. 秀秀博客大赛50强的礼物
  6. SqlServer表死锁的解决方法
  7. 60条令你大吃一惊的小常识,很有用
  8. asp.net HC架构 在.netCore上的配置
  9. elasticsearch实现按天翻滚索引
  10. excel 2010 学习笔记一 Vlookup 函数的使用