C# 静态方法

转载 2012年03月26日 19:44:20

静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,而静态只能访问类中的静态成员。看这个例子:

class A
{
int x;
static int y;
static int F(){
x=1; //错误,不允许访问
y=2; //正确,允许访问
}

在这个类定义中,静态方法F()可以访问类中静态成员y,但不能访问非静态成员x。这是因为,x作为非静态成员,在类的每个实例中都占有一个存储(或者说具有一个副本),而静态方法是类所共享的,它无法判断出当前的x是属于哪个类的实例,所以不知道应该到内存的哪个地址去读取当前x的值。而y是静态成员,所有类的实例都公用一个副本,静态方法F使用它就不存在什么问题。摘录(www.bianceng.cn)

C# 中动态方法与静态方法的误区

误区一、 静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存。 事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。...
  • lllliulin
  • lllliulin
  • 2015年10月14日 21:37
  • 1691

c#静态方法和非静态方法区别

c#静态方法和非静态方法区别
  • zh89233
  • zh89233
  • 2014年07月07日 15:13
  • 1011

静态方法的线程安全

先看一个类: public class Test {    public static String hello(String str)    {        String tmp = "";   ...
  • yuanyuanispeak
  • yuanyuanispeak
  • 2015年07月17日 14:27
  • 1269

c#静态方法和实例方法误区(转自一位前辈的博文)

总结:大家对这个问题都有一个共识:那就是实例化方法更多被使用和稳妥,静态方法少使用。有时候我们对静态方法和实例化方法会有一些误解。1、大家都以为“ 静态方法常驻内存,实例方法不是,所以静态方法效率高但...
  • llll29550242
  • llll29550242
  • 2010年12月03日 10:59
  • 2139

C#中抽象类里面建立静态方法

C#中抽象类里面建立静态方法
  • syaguang2006
  • syaguang2006
  • 2014年07月03日 18:04
  • 1185

C#事例调用类静态方法

var method = instance.GetType().GetMethod("testStaticFunc", System.Reflection.BindingFlags.Static   ...
  • GrimRaider
  • GrimRaider
  • 2015年11月30日 10:42
  • 798

C# 反射调用私有 静态 方法

//被反射的类  public class Class1 { static void Class111() { Console.W...
  • pehao
  • pehao
  • 2017年06月16日 15:51
  • 900

静态方法不能够进行重写

原则:1、静态具有全局的概念,不属于了单个的类实例化对象,而是属于类整体;类定义完成的时候,静态成员便可以使用了,继承类不能重写静态成员函数,假设重写了(当然仍是静态),那么就是说两个全局化的非重载的...
  • todototry
  • todototry
  • 2009年12月06日 13:59
  • 5613

c#的委托(1)之调用静态方法

C#中的委托是实现回调函数及事件的一个基础。下面是委托的简单实现 using System; using System.Collections.Generic; using System.L...
  • baidu_32134295
  • baidu_32134295
  • 2016年06月03日 09:33
  • 476

C# 反射详解:定义、创建对象、调用实例方法及静态方法

C# 反射详解 定义 动态创建对象及调用实例方法 1、反射的定义及功能介绍:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会...
  • u014019959
  • u014019959
  • 2014年05月18日 16:31
  • 2776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 静态方法
举报原因:
原因补充:

(最多只允许输入30个字)