对静态关键字static 的理解

先看C#参考说明对 static 的定义:

(1) 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。

static修饰的静态成员为类专属而与对象实例无关. 比如 Math类中 PI 的定义就是这样的:

public class Math

{

   public static PI = 3.14159265358979323846;

   ...

}

PI相当于公共的全局常量, 访问它方式: Math.PI.

静态字段和属性只在类中有一个副本, 并不包含于每一个对象实例中.

(2) static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。

声明为 static 的类是静态类, 其所包含的成员必须都为静态的;

static 方法则称之为类方法.

static 字段和属性为所有对象实例所共享, 其访问限制可以通过访问修饰符设定.

public class Circle

{

  public static TotalCount=0; //公共静态的字段

  public Circle()

  { TotalCount++;}

}

如果希望静态字段只允许类内部可以修改,而在类外部只允许读取, 则可以这样定义:

public class Circle

{

  private static totalCount=0; //私有静态的字段

  public Circle()

  { totalCount++;}

  public static TotalCount       //只读静态属性

{

    get{ return totalCount;}

    private set;

}

  public static void ResetCount()  // 清零, 也可以限定外部访问指定的对私有静态字段的操作(如果这样的逻辑是合理的话)

{

    totalCount = 0;

}

}

另外, 在静态方法中不能访问非静态字段和属性, 否则会得到如下的错误提示:

非静态的字段、方法或属性“member”要求对象引用.

还有,在静态成员中不能引用 this关键字, 因为 this 代表类的当前实例.

转载于:https://www.cnblogs.com/csMapx/archive/2011/06/05/2073015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值