当前位置:  编程技术>.net/c#/asp.net

C# 静态方法与非静态方法的区别分析

    来源: 互联网  发布时间:2014-08-30

    本文导语:  最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。 以下内容分四个方面来介绍C#静态方法与非静态方法的区别。 1,C#静态成员 ①静态成员属于类所有,非静态成员属于类的实例所有。 ②每创建一...

最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。

以下内容分四个方面来介绍C#静态方法与非静态方法的区别。

1,C#静态成员
①静态成员属于类所有,非静态成员属于类的实例所有。
②每创建一个类的实例,都会在内存中为非静态成员新分配一块存储;

静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占同一块区域。

2,C#静态方法:
1、C#静态方法属于类所有,类实例化前即可使用。
2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。

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

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

1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!
static内部只能出现static变量和其他static方法!而且static方法中还不能使用this....等关键字..因为它是属于整个类!
2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.
4.C#中的方法有两种:实例方法,静态方法.

4,C#静态方法中获取类的名称:
 

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

C#中静态方法与非静态方法的区别就介绍这些吧,希望对大家有所帮助。


    
 
 

您可能感兴趣的文章:

  • C#中实现抽象类里建立静态方法
  • C# 静态构造函数使用总结
  • c#静态方法和非静态方法详细介绍
  • C#生成单页静态页简单实例
  • c#只读字段和常量的区别,以及静态构造函数的使用实例
  • 学习C#中的静态构造函数与复制构造函数
  • C#静态变量与实例变量实例分析
  • 学习C#静态函数及变量的一个精典例子与代码
  • C#中静态的深入理解
  • C#只读字段和常量的区别 静态构造函数的例子
  • C# .NET自定义类实现伪静态页面的代码
  • C# 静态变量与静态方法实例研究
  • C# 伪静态 URL重写配置一例
  • C# 静态类与非静态类、静态成员的区别分析
  • C#中静态构造函数的几点说明介绍
  • C# .Net实现Url地址重写(伪静态)的方法
  • 深入理解c# static 静态数据成员和方法
  • 深入C#实例成员和静态成员详解
  • C# 伪静态实现方法与代码示例
  • 深入C#中静态成员和实例变量详解
  • 一个基本概念问题:静态函数只能调用静态方法,类的成员函数也是静态的吗?
  • 请教:(static)静态变量和静态方法是什么意思?
  • 有把两个静态库.a合成一个静态库的简单方法吗
  • 在静态上下文中不能引用非静态方法test(),天啊,为什么我的main()不能调用任何其它函数?
  • asp.net伪静态后真正的静态文件无法访问的解决方法
  • 本鸟问题:什么是静态方法?
  • 类静态变量能定义在成员方法中吗?? 在线
  • 为什么非静态变量不能用在静态方法上?什么意思?
  • 一个类里的静态方法可以访问这个类里的变量吗?
  • 静态方法的问题,我就是弄不懂,??????
  • 修改destoon会员公司的伪静态中的com目录的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux中静态链接库调用了另一个静态链接库
  • 如何 用一个静态库 生成 另一个静态库
  • linux 生成静态库的时候怎么连接别的静态库
  • 静态博客 静态blog
  • 静态库动态库同时存在时,如何指定使用静态库
  • C#中静态的深入理解 iis7站长之家
  • gcc的静态库.lib怎末在编译的时候连接。对了静态库是自己的???
  • PHP static局部静态变量和全局静态变量总结
  • 静态函数,静态变量
  • java有无像vb那样的静态变量?java的staic是类的属性,那末,静态变量如何声明?
  • c++静态局部变量和静态函数示例
  • 一个静态库包含多个函数,应用程序连接了库中的某个函数,应用程序目标代码中是否还包含了该静态库中的其他函数代码?
  • 关于C++静态成员函数访问非静态成员变量的问题
  • 急求静态库引用静态库,该如何编译链接!!!
  • 请问在LINUX下怎么设置静态IP?我在虚拟机中不能设置静态IP怎么办?
  • makefile.am中生成.a静态库的同时,链接其他.a静态库或.la动态库的问题
  • 静态库,动态库,静态链接和动态链接
  • 能否把一些静态库文件(.a)和.o文件一起打包成一个静态库文件?
  • .NET中的静态与非静态的区别分析
  • 在静态上下文中不能引用非静态变量 this WindowAdapter e=new MyAdapter();why?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3