新闻动态
新闻动态
- 如何做好网站的URL优化.
- 如何在aspx页面中插入swf动画
- 如何: 限制通过 IP 地址或域名的网站访问
- 京东新店怎么快速做大做强
- 配置和查看composer镜像
- SEO的常规性工作
- ASP.Net错误信息 authentication mode="Windows" 的解决方法
- C# 项目中 csproj 文件格式的本质和编译流程
- ASP.Net ViewState怎么实现
- 灰色的星期四 不少站被度娘连根拔起
联系我们
邮箱:
手机:15383239821
asp.net
C# Static
作者:
发布时间:2010-09-03
点击:
有时候写程序时常常遇到这样的情况:
1、定义了变量和方法不知道什么时候该加上static修饰符。
2、static变量和方法与非static变量和方法有什么区别?
3、在一个类的静态方法里为什么不能访问该类的非静态成员变量和方法?
4、在一个类的非静态方法中为什么可以访问该类的静态变量和方法?
5、在静态方法中为什么不能用this?
6、静态构造函数有什么作用?
基于以上问题,我发表自己的看法如下:
1、static变量及方法不用实例化对象就可以用类名.静态变量和类名.静态方法这种方式进行访问,这使得访问更加方便,不用手工实例化对象。对于某些只读变量和方法来说很适合共享。
2、static与非static最大的区别就是static类型的变量及方法在调用的时候就在内存中分配了地址,且这个地址只有一份,故static可以直接访问。而非static必需手工去实例化该类,以对象的方式去访问变量和方法。
3、在一个静态方法里去访问该类的非静态变量或方法,由于static是属于类本身的,是在类被调用的时候,static类型就已经生成,而非 static此时并没有生成,它不属于这个类本身,它是属于这个类的对象。故在没有实例化成对象的时候,在静态方法中访问非静态是根本找不到它们的,它不属于这个类。
4、在非静态方法中去访问静态,由于类被调用时,静态变量和方法就已经生成,也就是说它们属于这个类。既然已经存在,故不管是在静态方法中,还是非静态方法中都可以访问到它们。
5、this表明对象本身,而在静态方法中并没有对象概念存在,它只有类本身这个概念,它和对象是属于两种互拆的状态,即我中无你,你中无我的情况。也就是说你用对象名.静态变量或对象名.静态方法是不可访问的。
6、每个类都必须有构造函数,否则此类无法实例化成对象。而我们有时定义的类可以不写它的构造函数,这是因为编译器会帮我们加上一个静态的空构造函数。这样才能实例化。也可以用静态构造函数去初始化静态变量。
- 上一篇:.Net验证控件2
- 下一篇:Gridview行列的简单合并
新闻资讯
-
2023-02-22Vue 项目中的 views 和 components 文件夹有什么区别?
-
2023-09-13解决composer更新依赖php版本冲突
-
2025-09-23全面解析抽象类和接口的区别、概念、使用场景、注意事项和优缺点
-
2023-02-22vue-cli 3.x 的 views 和 components有什么区别?
-
2023-10-03php中'.'和'..'还有'./'和'../'都是什么含义
-
2010-07-20建站5个月每天从百度疯抢10万IP,真实案例详解!!
相关案例
