C#中的“静态”
静态构造函数:
C#的一个新特征是也能够给类编写无參数的静态构造函数。
编写静态构造函数的一个原因是,类有一些静态字段或属性,须要在第一次使用类之前。从外部源中初始化这些静态的字段和属性。
.NET运行库没有确保什么时候运行静态构造函数。所以不能把要求在某个特定时刻运行的代码放在静态构造函数中。也不能估计不同类的静态构造函数依照什么顺序运行。
可是能够确保静态构造函数至多运行一次,即在代码引用类之前调用它。
静态构造函数没有訪问修饰符,其它C#代码从来不调用它,但在载入类时,总是由.NET运行库调用它,所以像public或private这种訪问修饰符就没有不论什么意义。
出于同样的原因。静态构造函数不能带不论什么參数,一个类仅仅能有一个静态构造函数。非常显然。静态构造函数仅仅能訪问类的静态成员。不能訪问类的实例成员。
注意。无參数的实例构造函数与静态构造函数能够在一个类中同一时候定义。
虽然參数列表同样,但这并不矛盾。由于在载入类时运行静态构造函数,而在创建实例使运行实例构造函数,所以何时运行哪个构造函数并不冲突。
class BaseClass
{
private static int count;
static BaseClass()
{
count = 0;
console.writeline("aaa");
}
}
静态字段:
使用static修饰 属于类,不属于某个实例。
与实例字段一样。能够在声明的同一时候进行初始化。
与实例字段不同,假设没有对静态字段进行初始化,静态字段将自己主动获取默认值(0。null,false等)。
所以,一个静态字段即使没有被显示地赋值,也能够被訪问。
訪问须要使用 类名.静态字段名,不能使用 对象名.静态字段名
静态方法:
使用static修饰。直接使用 类名.方法名
静态方法的函数体内不能直接使用非静态成员,也没有this.
静态类:
假设类仅仅包括静态的方法和属性。该类就是静态类。静态类在功能上与使用私有静态构造函数创建的类同样。不能创建静态类的实例。
静态类是不能实例化的。我们直接使用它的属性与方法,静态类最大的特点就是共享。
public static class StaticTestClass
{
public static int n = 0;
public static void Add()
{
n++;
}
}
C#中的“静态”的更多相关文章
- 在linux中设置静态ip地址
在linux中设置静态ip地址1.在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.开始编辑,填写ip地址.子网掩码.网关.DNS等[root ...
- C++中关于[]静态数组和new分配的动态数组的区别分析
这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加 ...
- C#基础——全局静态类中的静态类变量的设置
前言 今天在设计一个系统用户管理界面的时候,出现了一个问题: 由于要在不同窗体之间传递数据,所以想到了要设置全局变量,比如一个用户有属性,ID,UserName,UserPwd和UserPower,为 ...
- NodeJS中的静态资源管理服务
欢迎大家指导与讨论 : ) 一.什么是静态资源 静态资源就是放在服务器中的特定的文件.比较常见的有.css,.png, .js的这一些后缀的文件.下图中的这个html页面便要获取到logo.png和a ...
- php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...
- 霸气!Nginx 中缓存静态文件秘籍
导读 这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设 ...
- Ubuntu中设置静态IP和DNS
在Ubuntu中设置静态IP共两步:1>设置IP:2>设置DNS1>设置IP 编辑 /etc/network/interface文件: sudo vi /etc/n ...
- nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容
1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...
- 在Linux中创建静态库.a和动态库.so
转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 问题总结 作者:轻舞肥羊 日期:2012-11-26 http://www.blogjava.net/fi ...
随机推荐
- MySQL集群搭建详解
概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达 ...
- java 钩子方法
Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jv ...
- Arch Linux实体机安装记录
下面将记录笔者在戴尔笔记本安装arch linux的过程,用于记录,以便下次使用. 本文的内容参考arch linux官方Wiki. 首先,使用Power ISO把镜像安装到U盘,使用U盘安装. 通过 ...
- Android睡眠唤醒机制--Kernel态
一.简介 Android系统中定义了几种低功耗状态:earlysuspend.suspend.hibernation. 1) earlysuspend: 是一种低功耗的状态,某些设备可以选 ...
- 2. Vue基础语法
模板语法: Mustache语法: {{}} Html赋值: v-html="" 绑定属性: v-bind:id="" 使用表达式: {{ok?'Yes': ...
- angular反向代理
第一步:根目录新建 proxy.conf.json target:就是代理的服务器地址. 接口地址必须是http://localhost:8081/api开头 { "/api":{ ...
- easy ui 验证
$('#IdentityCertificate').validatebox({required:true}); $('#memberName').validatebox({required:true} ...
- POJ 3264 Balanced Lineup 线段树RMQ
http://poj.org/problem?id=3264 题目大意: 给定N个数,还有Q个询问,求每个询问中给定的区间[a,b]中最大值和最小值之差. 思路: 依旧是线段树水题~ #include ...
- django-rest-framework框架 第二篇 之Mixin扩展类
Mixin扩展类 ['列表操作','过滤','搜索','排序'] <一>:<1>创建项目: 配置 urls 主路由 配置model文件(举个例子,就以book为模 ...
- 【Codeforces Round #433 (Div. 2) C】Planning
[链接]h在这里写链接 [题意] 让你确定ti,使得∑(ti-i)*gi最小,其中ti∈[k+1..k+n],且每个ti都不能一样. 且ti>=i必须成立. [题解] 分解一下成为∑ti*gi ...