首页 > 编程语言 >C#-静态

C#-静态

时间:2022-09-02 18:33:34浏览次数:46  
标签:静态方法 构造方法 C# 静态 static 类中 属性

静态之字段与属性

1.static 关键字

static 关键字,用于修饰类,字段,属性,方法,构造方法等。被 static 修饰的类称之为“静态类”;
被 static 修饰的成员称之为“静态成员”,被修饰过的成员分别称为:静态字段,静态属性,静态方法,静态构造方法。

2.静态字段

1.概念
被 static 关键字修饰的字段,叫做“静态字段”。
静态字段不属于任何对象,只属于类,必须要用 类名.静态字段名进行访问,反过来通过 对象名.静态字段名 的方式是访问不到静态字段的。
2.注意事项
静态字段是可以重新赋值的,类名.静态字段名 = 新的值;
静态字段存储的数据在内存中只有一份;
实例(对象)字段在内存中会有 N 份,有多少对象就会有多少实例字段;

3.静态属性

1.概念
被 static 关键字修饰的属性,叫做“静态属性”。
静态属性用于对静态字段进行封装,并保证静态字段值的合法性;静态属性使用 类名.静态属性名 进行访问;
2.注意事项
静态属性不能用于封装非静态字段,因为静态的类成员是先于非静态的类成员存在的。在还没有对象之前,静态类成员就已经存在了。

4.静态普通方法

1.概念
被 static 修饰的方法,叫做静态方法。
直接使用 类名.静态方法名 进行访问。
2.注意事项
控制台程序的 Program 入口类中的 Main 函数就是一个静态方法;在静态方法中不能调用非静态方法。

5.静态构造方法

1.概念
静态构造方法的作用是用于初始化静态成员。
一个类只能有一个静态构造方法,该静态方法没有任何访问修饰符,也没有参数。可以定义在静态类中,也可以定义在非静态类中。
2.注意事项
静态构造方法会在程序创建第一个实例,或者引用任何静态成员之前,完成类中静态成员的初始化。

6.静态类

1.概念
当类中的成员全部是静态成员的时候,可以把这个类声明为静态类。声明静态来需要在 class 关键字前加静态关键字 static。
2.注意事项
静态类中不能存在非静态(实例)成员;
静态类不能实例化对象。

单例设计模式

1.何为单例?
设计一个类的时候,需要保证整个程序在运行期间只存在一个实例对象。解决这个问题,我们就需要用到“单例(模式)”。
2.注意事项
单例设计模式是用于非静态类中的,在静态类中写单例无意义。
3.单例代码步骤
<1>声明一个静态且私有的这么一个当前类类型的字段;

private static ClassName instance;

<2>创建私有无参构造方法,保证外部无法实例化这个类;

private ClassName() { }

<3>创建一个静态方法,用于创建此类的唯一对象。

public static ClassName Instance()
{
if (instance == null)
{
instance = new ClassName();
}
return instance;
}

标签:静态方法,构造方法,C#,静态,static,类中,属性
From: https://www.cnblogs.com/shazamsjtu/p/16650912.html

相关文章

  • .net core系列源码地址
    .netcore独立模块源码:https://github.com/aspnet.netcore全家桶源码:https://github.com/dotnet/aspnetcore.netcore拓展库源码:https://github.com/dotnet/ext......
  • Cmd以管理员身份运行
    第一种:搜索cmd应用,然后点击以管理员身份运行 第二种:快捷键打开,先win+r输入cmd,将下一步点击Enter换为Ctrl+Shift+Enter,直接以管理员打开cmd。......
  • java.lang.reflect.InvocationTargetException
    1.自定义BaseServlet时候,里面的方法应该是重新HttpServlet里的service方法,自己写成dogetdopost了,错误!2.mapper的xml配置文件,查询总数的方法selectTotalCount需要......
  • php exec 函数执行shell命令,中文参数异常的问题
    exec("/usr/local/bin/wkhtmltopdf--page-sizeA4--footer-font-nameFangSong--footer-line--header-font-size13--footer-font-size9--footer-center[page]--......
  • leetcode191-位1的个数
    1.循环检查二进制位把题目给出的数不断对2取余,余数为1则计数class Solution {public:    int hammingWeight(uint32_t n) {        int count=0;......
  • 外置tomcat方式部署springboot
    目录外置tomcat方式部署springboot1、打包方式的改变2、去除springboot中内置的tomcat(.xml中)3、启动类中增加继承SpringBootServletInitializer,重写configure方法外置tom......
  • TCP Previous segment not captured TCP Out-Of-Order TCP Dup ACK
    317276 1540.1003445.6.7.81.2.3.4TCP1095  [TCPPrevioussegmentnotcaptured]12345→65423[PSH,ACK]Seq=127798Ack=8060Win=38912Len=1041[TCPs......
  • Motion 5 for Mac中文版(视频后期特效处理软件)
    Motion5formac是一款视频效果编辑软件,专为视频编辑人员而设它能让您自定 FinalCutPro 字幕、转场和效果。可帮你便捷地制作影院级的二维、三维和360°字幕,流畅的......
  • 04_Linux基础-.&..-cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which
    04_Linux基础-.&..-cat-tac->&>>-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-/usr-locate-find一.回顾回顾// 将/home/目录下的所有文件和......
  • 借助cpolar内网穿透轻松访问远程NAS
    在现代企业中,协同办公早已不是什么新鲜事,很多公司都会设置NAS服务器,加强不同部门或不同员工之间对同一任务或项目的跟进流程,提高工作效率。虽然这样做能提升项目或工作的效......